Tweak a few Thread tests.
[p5sagit/p5-mst-13.2.git] / cond.t
CommitLineData
d9bb3666 1use Thread 'fast';
2
3sub printstuff {
4 my $count = 2000;
5 while ($count--) {
6 $lock->waituntil(sub { $inuse ? 0 : ($inuse = 1) });
7 print "A";
8 $lock->signal(sub { $inuse = 0 });
9 }
10 $lock->signal(sub { $inuse = 42 });
11}
12
13$| = 1;
14$inuse = 0;
15$lock = new Thread::Cond;
16$t = new Thread \&printstuff;
17PAUSE: while (!$done) {
18 sleep 3;
19 $lock->waituntil(sub {
20 $inuse != 42 ? $inuse ? 0 : ($inuse = 1) : ($done = 1, 0)
21 });
22 last PAUSE if $done;
23 sleep 1;
24 $lock->signal(sub { $inuse = 0 });
25}
26print "main exiting\n";