5 if ($ENV{'PERL_CORE'}){
7 unshift(@INC, '../lib');
10 if (! $Config{'useithreads'}) {
11 print("1..0 # SKIP Perl not compiled with 'useithreads'\n");
18 use Thread::Semaphore;
21 require 't/test.pl'; # Test::More work-alike for Perl 5.8.0
28 ### Basic usage with multiple threads ###
30 my $sm = Thread::Semaphore->new();
31 my $st = Thread::Semaphore->new(0);
32 ok($sm, 'New Semaphore');
33 ok($st, 'New Semaphore');
35 my $token :shared = 0;
39 is($token++, 1, 'Thread 1 got semaphore');
44 is($token, 5, 'Thread 1 done');
50 is($token++, 3, 'Thread 2 got semaphore');
55 is($token, 5, 'Thread 2 done');
60 is($token++, 0, 'Main has semaphore');
64 is($token++, 2, 'Main got semaphore');
68 is($token++, 4, 'Main re-got semaphore');