This may actually have nothing to do with Perl itself.
Note that your parent process sleeps for
5 seconds when it detects that the system is no longer able to create new processes. Yet, child processes only sleep for
1 second. So, it is entirely possible that
all of them finish before parent wakes up. The reason waitpid() would get a -1 in such a case is because CHLD signal handler gets called asynchronously and if one invocation gets interrupted somewhere before the code section that is responsible for obtaining child's PID, then the very last invocation will loop through and collect all zombies. When control is finally returned to the first invocation of the signal handler and it proceeds to get the PID, it will obviously return -1 because there will be nothing left to collect...
--perlplexer
Updated: fixed typos
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.