Unfortunately this also gives me a 'A thread exited while 2 threads were running.' message at the end. I don't know how big of an issue this is.#!/usr/bin/perl -w use threads; use Thread::Semaphore; $mtx = new Thread::Semaphore(2); $thr0 = async{ test() }; $thr1 = async{ timer( ) }; print "starting\n"; sleep(1); $v = $mtx->down(); print "test finished 1st\n" if ( $v == 2 ); print "timer finished 1st\n" if ( $v == 1 ); $thr0->detach(); $thr1->detach(); sub test { print " start(test)\n"; my $d = $mtx->down(); sleep( 5 ); $mtx->up( 3 ); print " exit(test)\n"; } sub timer { print " start(timer)\n"; my $d = $mtx->down(); sleep( 10 ); $mtx->up( 2 ); print " exit(timer)\n"; } start(test) starting start(timer) exit(test) test finished 1st
In reply to Re^3: threads - cond_timedwait question
by ethrbunny
in thread threads - cond_timedwait question
by ethrbunny
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |