X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=lib%2FPublicInbox%2FSpamcheck%2FSpamc.pm;h=ba8e44a489c031b8b237bec466fc2dfccb72943b;hp=30eec95cc6fad519c02980fb7cbb16adec19ce88;hb=d9c9dc5af637e097d545a828d887aae99ddcd2a7;hpb=5bde05b66f084c7c9dcf7389079aab6925aef328 diff --git a/lib/PublicInbox/Spamcheck/Spamc.pm b/lib/PublicInbox/Spamcheck/Spamc.pm index 30eec95c..ba8e44a4 100644 --- a/lib/PublicInbox/Spamcheck/Spamc.pm +++ b/lib/PublicInbox/Spamcheck/Spamc.pm @@ -29,10 +29,14 @@ sub spamcheck { my $buf = ''; $out = \$buf; } +again: do { $r = sysread($fh, $$out, 65536, length($$out)); } while (defined($r) && $r != 0); - defined $r or die "read failed: $!"; + unless (defined $r) { + goto again if $!{EINTR}; + die "read failed: $!"; + } close $fh or die "close failed: $!"; waitpid($pid, 0); ($? || $$out eq '') ? 0 : 1;