Hi.  With the limited information I have, I'm guessing that you have _stop 
handlers with side effects that affect resources shared between parent and 
child.  For example, shutting down a socket that the parent still needs.  I 
wouldn't limit my investigation to that scope, but I would start there.

-- 
Rocco Caputo <rcap...@pobox.com>

> On Nov 11, 2015, at 19:31, Deven Parekh <parekh.de...@gmail.com> wrote:
> 
> Hello,
> 
> Thank you for the quick response.
> 
> I will try to generate a test case for the above.
> 
> In the mean time if this helps, I did a hand edit to  the stop subroutine in 
> POE::Kernel and replaced 
> 
> $self->_data_ses_stop($session->ID);
> 
> (which appears in the latest version )
> 
> with 
> 
> $self->_data_ses_free($session->ID);
> 
> (which was how it was in previous version)
> 
> and the program is working as expected now.
> 
> 
> I will try to generate a test case and send it for debugging.
> 
> Thanks in advance,
> 
> Best Regards.
> 
> On Tue, Nov 10, 2015 at 2:53 PM, Rocco Caputo <rcap...@pobox.com 
> <mailto:rcap...@pobox.com>> wrote:
> I don't expect the change to cause the behavior you've reported.
> 
> If you can reduce your program to a self-contained test case, something I can 
> run myself using only easily installed, public dependencies, I can 
> investigate what happened.
> 
> -- 
> Rocco Caputo <rcap...@pobox.com <mailto:rcap...@pobox.com>>
> 
>> On Nov 10, 2015, at 15:12, Deven Parekh <parekh.de...@gmail.com 
>> <mailto:parekh.de...@gmail.com>> wrote:
>> 
>> Hello,
>> 
>> Is it possible that it breaks the following capability of POE::Wheel::Run
>> Running POE::Kernel in the Child <>
>> Calling POE::Kernel->run() in the child process effectively resumes the copy 
>> of the parent process. This is rarely (if ever) desired.
>> 
>> More commonly, an application wants to run an entirely new POE::Kernel 
>> instance in the child process. This is supported by first stop()ping the 
>> copied instance, starting one or more new sessions, and calling run() again. 
>> For example:
>> 
>>   Program => sub {
>>     # Wipe the existing POE::Kernel clean.
>>     $poe_kernel->stop();
>> 
>>     # Start a new session, or more.
>>     POE::Session->create(
>>       ...
>>     );
>> 
>>     # Run the new sessions.
>>     POE::Kernel->run();
>>   }
>> 
>> I had a program that used the above construct which works fine with
>> POE  => $VERSION = '1.354';
>> POE::Wheel::Run => $VERSION = '1.354';
>> 
>> 
>> However with 
>> POE => $VERSION = '1.367';
>> POE::Wheel::Run => $VERSION = '1.367';
>> 
>> It seems calling POE::Kernel->stop(); it stops the POE::Kernel instance in 
>> parent as well.
>> 
>> Just wondering if the above change could be causing this behaviour (?)
>> 
>> Thanks in advance.
>> Best Regards
>> 
>> 
>> 
>> On Thu, Oct 30, 2014 at 4:00 PM, Rocco Caputo <rcap...@pobox.com 
>> <mailto:rcap...@pobox.com>> wrote:
>> Hello, everyone.  I hope you've been well.
>> 
>> It's come to my attention that POE::Kernel->stop() isn't triggering _stop 
>> handlers.  This seems wrong, so I've changed it.  I hope it doesn't break 
>> anything, but I'm mentioning it here in case people want to check in advance 
>> of a release.
>> 
>> I've already run it past irc.perl.org <http://irc.perl.org/> #poe, and 
>> nobody objected.
>> 
>> --
>> Rocco Caputo <rcap...@pobox.com <mailto:rcap...@pobox.com>>
>> 
> 
> 

Reply via email to