POE 0.31 completed a major milestone in the Signal Reforms documented
at http://poe.perl.org/ .  One of them was to stop seeding %SIG with
default signal handlers.  In the past, POE would register handlers for
all sorts of signal, including SIGCHLD and SIGPIPE whether a program
needed them or not.

The result is zombie processes in programs that use fork(), which is
also used by POE::Wheel::Run and POE::Component::Child.  I've also
received a single report of a SIGPIPE killing a process, but this
seems rarer.

I'm going to have POE set $SIG{CHLD} and $SIG{PIPE} to "IGNORE" when
nobody has events registered for them.  This should fix both problems.

-- 
Rocco Caputo - http://poe.perl.org/

Reply via email to