You have a race condition in your parent code:

kill (POSIX::SIGUSR2, $pid); $SIG{CHLD} = 'IGNORE';

(You send the signal to your child before you set the $SIG{CHLD} handler.)

Try swapping those two statements, for a start.

Beyond that, I wonder why you set $SIG{CHLD} = 'IGNORE' but then loop on wait() in the normal execution flow? It's unlikely that's causing your bug, but the docs are a little non-committal on this (emphasis mine):

Calling wait() with $SIG{CHLD} set to "IGNORE" usually returns -1 on such platforms.

'IGNORE' is most useful when you really don't care. But if you don't want to exit until all of your children exit, I'd recommend just using your own wait() or waitpid() loop, perhaps in conjunction with a custom signal handler if you need out-of-band child exit notifications.


In reply to Re: SIG CHLD IGNORE and wait at same time by rjt
in thread SIG CHLD IGNORE and wait at same time by vsespb

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.