in reply to Re^2: Non closing sockets - threads
in thread Non closing sockets - threads

This is completely wrong. When the OP starts his threads, he is passing in all the information they require to function and he never needs to communicate with it again before it dies.

I clearly missed the point :-( I thought the OP problem was how to kill off the threads in the event of losing connection to the server, so that everything could be restarted again. If they were separate processes, then one would expect to kill each process. My understanding is that with threads there isn't an equivalent mechanism. So, that what you need is a way to tell each thread that it's time to terminate themselves -- which requires some form of communication.

I apologise without reservation if (a) I have misunderstood the point; and/or (b) misunderstood thread handling; and/or (c) failed to express what I intended.

Replies are listed 'Best First'.
Re^4: Non closing sockets - threads
by BrowserUk (Patriarch) on Dec 15, 2008 at 14:13 UTC
    I thought the OP problem was how to kill off the threads in the event of losing connection to the server, so that everything could be restarted again.

    No the OP is detaching the threads, so they will simply evaporate when the thread procs "fall off the end" when the while( <$lclient> ) { loops detects that the client has disconnected. (returns undef).

    The problem appears to be that the disconnected sockets are remaining active after the threads have gone away--probably due to there being multiple handles in existance that are not being cleaned up properly.


    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.