On Mon, 2002-09-09 at 12:07, Rocco Caputo wrote: 
> If DESTROY is being called, it's almost certain that the socket is
> being destroyed from POE's point of view.  Sockets still won't close
> if something outside POE has copies of them.  That includes child
> processes, so this may be related to the Wheel::Run issues in the
> other thread.

Eureka!  Thank you for pointing this out.  Now it all makes sense.  

In order to handle individual requests, my daemon forks child processes
(which are Perl functions run by POE::Wheel::Run), these child processes
held on to the sockets of all connections at the time.  That's why the
clients were hanging until all those children exit, *sigh*.

Now I just have to figure out how to close all file descriptors > $^F in
the child process as you suggested.

Pete


Reply via email to