diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-30 21:08:11 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-10-30 21:08:11 +0000 |
commit | f648820cb158526d3c3e16f712206316f2112b7e (patch) | |
tree | fdc8b957c76a44513968ca0ba79e4a7d242b934b /pod/perlipc.pod | |
parent | 7bdaec8ae6f8e5acca5224ad0e011cbd98e7875e (diff) | |
download | perl-f648820cb158526d3c3e16f712206316f2112b7e.tar.gz |
mention the C<$SIG{CHLD} = 'IGNORE'> special case
p4raw-id: //depot/perl@2152
Diffstat (limited to 'pod/perlipc.pod')
-rw-r--r-- | pod/perlipc.pod | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pod/perlipc.pod b/pod/perlipc.pod index cc2a1a9d81..c74c520637 100644 --- a/pod/perlipc.pod +++ b/pod/perlipc.pod @@ -56,7 +56,17 @@ So to check whether signal 17 and SIGALRM were the same, do just this: You may also choose to assign the strings C<'IGNORE'> or C<'DEFAULT'> as the handler, in which case Perl will try to discard the signal or do the -default thing. Some signals can be neither trapped nor ignored, such as +default thing. + +On most UNIX platforms, the C<CHLD> (sometimes also known as C<CLD>) signal +has special behavior with respect to a value of C<'IGNORE'>. +Setting C<$SIG{CHLD}> to C<'IGNORE'> on such a platform has the effect of +not creating zombie processes when the parent process fails to C<wait()> +on its child processes (i.e. child processes are automatically reaped). +Calling C<wait()> with C<$SIG{CHLD}> set to C<'IGNORE'> usually returns +C<-1> on such platforms. + +Some signals can be neither trapped nor ignored, such as the KILL and STOP (but not the TSTP) signals. One strategy for temporarily ignoring signals is to use a local() statement, which will be automatically restored once your block is exited. (Remember that local() |