If we didn't want to process this font, tolerate SIGPIPE for all
elements of the pipeline before "self", rather than special-casing
pcf2bdf.
(We end up setting {SigOK}{13} again for gunzip, which is fine.)
Now process_filter has no knowledge of particular pipeline stages.
# 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
# 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 $!;
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;
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
}
# ... we might not have read all the output from pcf2bdf, which is OK
}