On Mon, Sep 09, 2002 at 11:09:41AM -0400, Peter Chen wrote: > I spent some time testing the changes in POE 0.2201. PoCo-Server-TCP > worked fine with the test cases. So I tried it with one of the larger > apps. Interestingly enough, the SOAP client hangs again, because it > never gets an EOF, which should happen when the socket is destroyed. > > I traced it all the way to the DESTROY in POE::Wheel::ReadWrite. > However, I am somewhat at loss as to how to trace even further to find > out when the socket is actually destroyed. Any suggestion?
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. If you want to trace it further into POE, you'll need to delve into POE::Kernel's _internal_select() function. That manages reference counts on file handles and destroys them if they're no longer used. It's not a pretty function, however. -- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sf.net
