perl and threads

K

kristoff bonne

Aan 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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,965
Messages
2,570,148
Members
46,710
Latest member
FredricRen

Latest Threads

Top