Hi, I'm hoping to gather some insight into what is causing a problem in some code I have inherited. It is based on the 'forking web server' example in the cookbook. Basically the problem is that sending a TERM signal to the parent process does not kill any of the child processes. Instead, I get the following warnings:
<sg> Kernel now running in a different process (is=9012 was=9011). You must call call $poe_kernel->has_forked in the child process. ----- at /Library/Perl/5.10.0/POE/Resource/Signals.pm line 798 POE::Kernel::_data_sig_pipe_send('POE::Kernel', 'TERM') called at /Library/Perl/5.10.0/POE/Loop/PerlSignals.pm line 27 POE::Kernel::_loop_signal_handler_generic('TERM') called at /Library/Perl/5.10.0/POE/Loop/Select.pm line 205 eval {...} called at /Library/Perl/5.10.0/POE/Loop/Select.pm line 205 POE::Kernel::loop_do_timeslice('POE::Kernel=ARRAY(0x100ac9c50)') called at /Library/Perl/5.10.0/POE/Loop/Select.pm line 334 POE::Kernel::loop_run('POE::Kernel=ARRAY(0x100ac9c50)') called at /Library/Perl/5.10.0/POE/Kernel.pm line 1342 When this happens, _stop is never reached in the parent process - in this state the parent sends a kill signal to its children. I believe this may be limited to recent versions of POE. As far as I know, it used to work fine without anything having changed in the implementation code. Cheers, Andy