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