lib/PublicInbox/Qspawn.pm | 4 ++-- diff --git a/lib/PublicInbox/Qspawn.pm b/lib/PublicInbox/Qspawn.pm index 5d3ec30926cdb5be848c0a38df738428af4ecbc9..f2beb4b21febc96f8a22862f835a3ffc1244e405 100644 --- a/lib/PublicInbox/Qspawn.pm +++ b/lib/PublicInbox/Qspawn.pm @@ -201,7 +201,7 @@ my $ret; my $total_rd = 0; my $hdr_buf = $self->{hdr_buf}; my ($ph_cb, $ph_arg) = @{$self->{parse_hdr}}; - do { + until (defined($ret)) { my $r = sysread($self->{rpipe}, $$hdr_buf, 4096, length($$hdr_buf)); if (defined($r)) { @@ -225,7 +225,7 @@ next if $! == EINTR; # immediate retry warn "error reading header: $!"; $ret = [ 500, [], [ "Internal error\n" ] ]; } - } until (defined $ret); + } delete $self->{parse_hdr}; # done parsing headers $ret; }