It depends on what you mean by "wait". A POSIX subprocess will autozombify if the stack frame from which perl called it is unwound without waiting - it seems to me that the fork itself should wait for the mail subprocess to prevent
that being the zombie - waiting for the fork that invokes the mail should not be the issue here:
use POSIX ":sys_wait_h";
...
# important: called within fork
sub Send {
my $message = shift;
my $pid = open my $wh, '| mail ...';
print $wh $message;
close $wh;
waitpid $pid, 0;
}
So in my expected scenario the above fork "waits" but is really only waiting for the mail process to close the pipe rather than prematurely unwind the current stack frame for subroutine Send.
See the
perlipc documentation section for the full and very gory details.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.