Hi Liz, The main thread spawned many other threads (worker thread). If I join(0ed any of them, it will cause the main to wait for the worker thread to exit.
It seems to me it is a bug in ithread. If a thread dies, then ithread->list() should not list it as an alive thread. perl ithread tutorial & ithread doc clearly state that: http://www.perldoc.com/perl5.8.0/pod/perlthrtut.html threads->list returns a list of thread objects, one for each thread that's currently running and not detached. Handy for a number of things, including cleaning up at the end of your program: # Loop through all the threads foreach $thr (threads->list) { # Don't join the main thread or ourselves if ($thr->tid && !threads::equal($thr, threads->self)) { $thr->join; } } J. "Elizabeth Mattijsen" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > At 16:20 -0500 11/17/03, EastInspection USA wrote: > >Hi there, > > > >In my program, one thread runs into a "die" statement, but when I use > >threads->list to get a list of thread ids, the "dead" thread is still there. > >How come? > >The thread is not a detached thread. > > Have you join()ed the thread? > > > Liz