which does open( PUTFILE, ">$outfile" ) or threads->exit;. The threads->exit is clearly getting called, leaving the socket open.
FWIW: I have written a crap load of threaded perl code and never had occasion to use thread->exit;. It is IMO redundant and dangerous.
I would code that line as simply:
open( PUTFILE, ">$outfile" ) or return;
That way, all the normal perl cleanup will take place before the thread function returns and the thread terminates.
Try it, it just might sort out a lot of your problems!
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP Neil Armstrong
|