perl and threads
am 18.07.2006 15:20:42 von kristoff bonneAan allen die zijn of zullen zijn, onze groet.
I don't know if this is the correct place for this, but I'm looking for
some information about perl threads.
I've been looking into perlthrtut and the other manuals for this, but I
don't see to find the solution.
If it is off-topic, please point me to a more correct newsgroup or forum.
My question is this:
Is there a way to get 100 % certainty if a thread is running.
What I want to do is this:
I have a program that makes a number (actually eigth) of ssh-sessions to
a number of servers using the net::telnet module. On the servers, they
read the log-files to get some information using a "tail -f".
Now, I've got a thread (called "sshmaster") in my main program which
starts up the 8 ssh-session (called "sshsession"); each as a seperate
thread.
These sub-thread communicate back to "sshmaster" for control-messages
(e.g. connection established, connection failed, connection interrupted)
using a queue.
So far, so good. And it does seams to work pretty-much OK, ... as long
as the ssh-sessions behaviour as they are supposted to do.
But, I want to be sure that the sub-threads do keep on working OK, and
-when a subtreads dies for whatever reason- that "sshmaster" is able to
check this.
I see different possibilities:
1/ sent a control-message from the sub-thread to sshmaster over the
message-queue. However, this will not work if the subthread dies for an
unknown reason and it might not be able to sent a message to sshmaster.
2/ lock a variable (which will automatically unlock when the thread
dies), but sshmaster is not able to check if a variable is still locked
without blocking.
3/ As "sshmaster" has a list of all its subthreads, ask a system if a
thread is still alive. But HOW????
The only way I see is by locking a file using the "flock" mechanism but
that'a a bit "overkill" if you ask me.
Anybody any other ideas?
Cheerio! Kr. Bonne.