in reply to Perl dropping signals?

It's probably not Perl. It could very well be the kernel. A signal is only a request that at some point in the future, an interrupt might be taken if the process is interested. The queue is only 1-bit deep... if two signals come in before the interrupt is taken on the first one, the second one is viewed as "redundant" and deleted.

Thus, never design a protocol where the number of signals matters. Only that a signal has been triggered since the last time you noticed.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Replies are listed 'Best First'.
Re^2: Perl dropping signals?
by DrWhy (Chaplain) on Aug 10, 2004 at 23:02 UTC

    Thanks, Randal! I have a brief (I hope) followup question. Actually, two questions.

    1. Is this behavior the same to your knowledge on all *nixes -- we're using Solaris and Debian Linux.
    2. Does it matter whether the two signals are different signals or the same, i.e., two SIGCHLD's vs a SIGCHLD and SIGUSR2?