1use strict; 2use warnings; 3 4BEGIN { 5 require($ENV{PERL_CORE} ? '../../t/test.pl' : './t/test.pl'); 6 7 use Config; 8 if (! $Config{'useithreads'}) { 9 skip_all(q/Perl not compiled with 'useithreads'/); 10 } 11 12 plan(11); 13} 14 15use ExtUtils::testlib; 16 17use_ok('threads'); 18 19### Start of Testing ### 20 21my $i = 10; 22my $y = 20000; 23 24my %localtime; 25for (1..$i) { 26 $localtime{$_} = localtime($_); 27}; 28 29my @threads; 30for (1..$i) { 31 $threads[$_] = threads->create(sub { 32 my $arg = shift; 33 my $localtime = $localtime{$arg}; 34 my $error = 0; 35 for (1..$y) { 36 my $lt = localtime($arg); 37 if ($localtime ne $lt) { 38 $error++; 39 } 40 } 41 return $error; 42 }, $_); 43} 44 45for (1..$i) { 46 is($threads[$_]->join(), 0, 'localtime() thread-safe'); 47} 48 49exit(0); 50 51# EOF 52