in reply to Possible bug with threads
use threads; use strict;
# I added this to make sure we see all printing on time $| ++;
# constants my $workers = 1; #number of simultaneous workers workerPool(); sub list_threads { my @threads = threads->list; print "--threads i know of: -----\n"; for my $t (@threads) { print $t->tid."\n"; } print "--------------------------"; } # sub which maintains a set number of simultaneous threads sub workerPool { print "Starting workerPool...\n"; my $count = 0; my @running_threads = (); while (1) { @running_threads = threads->list; if (scalar(@running_threads) < $workers) {
#I added this, and it only shows ONCE print "creating new threads\n";
# add a new worker $count++; my $thread = threads->new(\&worker, $count); }
# I commented out this, with this flushing the output all the +time, I cannot see anything useful #list_threads();
} } # this sub represents a thread sub worker { my $thread_num = $_[0]; print "---I am thread $thread_num!\n";
#this is simply a lie print "+++Thread $thread_num gone!\n"; #this hangs this worker thread itself eval(((threads->self)->join));
}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Possible bug with threads
by znu (Acolyte) on Dec 21, 2002 at 07:32 UTC |