# for some other reason then sending it a KILL now won't
# affect its exit status.) We kill the output filters (before
# we close the output pipe) so we don't produce messages from
- # our output filters about corrupted data.
+ # our output filters about corrupted data. And we tolerate
+ # SIGPIPE in all the input filters.
flush $uswrite or die $!;
+ my $filterkind = 'input';
foreach my $ch (@children) {
if ($ch->{Stage} ne 'self') {
kill 9, $ch->{Pid} or die "$ch->{Pid} $ch->{Exe} $!";
$ch->{SigOK}{9} = 1;
+ } else {
+ $filterkind = 'output';
+ next;
+ }
+ if ($filterkind eq 'input') {
+ $ch->{SigOK}{13} = 1;
}
}
- $ch{'pcf2bdf'}{SigOK}{13} = 1;
# ... we might not have read all the output from pcf2bdf, which is OK
}