X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2Flib%2Fautovivification%2FTestThreads.pm;fp=t%2Flib%2Fautovivification%2FTestThreads.pm;h=0000000000000000000000000000000000000000;hb=e2cf50a4ad234e0ab9844ac0cb45f2a363abe217;hp=25f2ae699378f693253723fe364b81c04d2a85c5;hpb=7839df4d069fb2962a189f08bf7c92ff63d261fa;p=perl%2Fmodules%2Fautovivification.git diff --git a/t/lib/autovivification/TestThreads.pm b/t/lib/autovivification/TestThreads.pm deleted file mode 100644 index 25f2ae6..0000000 --- a/t/lib/autovivification/TestThreads.pm +++ /dev/null @@ -1,52 +0,0 @@ -package autovivification::TestThreads; - -use strict; -use warnings; - -use Config qw<%Config>; - -use VPIT::TestHelpers; - -sub import { - shift; - - require autovivification; - - skip_all 'This autovivification isn\'t thread safe' - unless autovivification::A_THREADSAFE(); - - my $force = $ENV{PERL_AUTOVIVIFICATION_TEST_THREADS} ? 1 : !1; - skip_all 'This perl wasn\'t built to support threads' - unless $Config{useithreads}; - skip_all 'perl 5.13.4 required to test thread safety' - unless $force or "$]" >= 5.013_004; - - load_or_skip_all('threads', $force ? '0' : '1.67', [ ]); - - my %exports = ( - spawn => \&spawn, - ); - - my $pkg = caller; - while (my ($name, $code) = each %exports) { - no strict 'refs'; - *{$pkg.'::'.$name} = $code; - } -} - -sub spawn { - local $@; - my @diag; - my $thread = eval { - local $SIG{__WARN__} = sub { push @diag, "Thread creation warning: @_" }; - threads->create(@_); - }; - push @diag, "Thread creation error: $@" if $@; - if (@diag) { - require Test::Leaner; - Test::Leaner::diag($_) for @diag; - } - return $thread ? $thread : (); -} - -1;