On Thu, Aug 29, 2002 at 03:39:36PM -0400, Peter Chen wrote:
> On Thu, 2002-08-29 at 13:40, Rocco Caputo wrote:
> > I haven't, but I don't use POE::Wheel::Run as much as you do.  Is it
> > possible that occasionally the SIGCHLD is being delivered before the
> > STDOUT/STDERR pipes close, so the wheel is being destroyed before it
> > can emit a CloseEvent?
> 
> I did check for that.  As you have guessed, some of my applications make
> heavy use of this, so I am explicit about the conditions in which a
> Wheel::Run is considered done and can be deleted.  In this particular
> instance, I only delete a wheel when both sigchild and CloseEvent are
> received.  As I mentioned before, 99% of the time this works perfectly. 
> Yet I have a few reproducible cases where a CloseEvent is never emitted.
> 
> Even though presently I have a workaround, at some point, I will have to
> track this down.  This reminds me of another idea that we were bouncing
> around, having a component to manage the states for Wheel::Run.

Please try http://poe.dynodns.net/~troc/tmp/peter-chen-wheel-run.perl
(temporary URL on my dial-up machine), or you can use it as the base
for your own test case.

I still can't reproduce the problem here, even with that running for
almost 15 minutes (6300 child processes).  Maybe it's something
specific to your runtime environment?

-- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net

Reply via email to