+use strict;
+use warnings;
+
+# test that END blocks are run in the thread that created them and
+# not in any child threads
BEGIN {
- chdir 't' if -d 't';
- @INC = '../lib';
- require Config; import Config;
+ if ($ENV{'PERL_CORE'}){
+ chdir 't';
+ unshift @INC, '../lib';
+ }
+ use Config;
unless ($Config{'useithreads'}) {
print "1..0 # Skip: no useithreads\n";
exit 0;
}
use ExtUtils::testlib;
-use strict;
+
BEGIN { print "1..6\n" };
use threads;
use threads::shared;
my $test_id = 1;
share($test_id);
-use Devel::Peek qw(Dump);
sub ok {
my ($ok, $name) = @_;
$test_id++;
return $ok;
}
-ok(1);
+ok(1,'Loaded');
END { ok(1,"End block run once") }
threads->create(sub { eval "END { ok(1,'') }"})->join();
threads->create(sub { eval "END { ok(1,'') }"})->join();