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

I've downvoted your post because nothing in it will in any way assist the OP.

If you want a thread to do something you need a means to communicate with it.

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.

The problem he is having has absolutely nothing to do "communication" (he is already using shared variables), and not only will neither of the modules you mention allow him to fix his problem, they will most likely confuse him further. (And he is already quite confused enough!).

In particular, the link you gave is guarenteed to create confusion. Thread signalling is an almost entirely useless concept, and could never be of any use n fixing the problem the OP has.


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.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^3: Non closing sockets - threads
by gone2015 (Deacon) on Dec 15, 2008 at 14:08 UTC
    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.

      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.