X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F11-detach.t;h=0631264a63fa331247b7eeb95ae5c494c83a9977;hb=HEAD;hp=3c641666c96a5ca6845380ff3461b5627a87d95c;hpb=15b9171b2fc61b12e0dcc123369fc2b66fe87012;p=perl%2Fmodules%2FThread-Cleanup.git diff --git a/t/11-detach.t b/t/11-detach.t index 3c64166..0631264 100644 --- a/t/11-detach.t +++ b/t/11-detach.t @@ -3,20 +3,10 @@ use strict; use warnings; -use Config qw/%Config/; +use lib 't/lib'; +use Thread::Cleanup::TestThreads; -BEGIN { - if (!$Config{useithreads}) { - require Test::More; - Test::More->import; - plan(skip_all => 'This perl wasn\'t built to support threads'); - } -} - -use threads; -use threads::shared; - -use Test::More tests => 5 * (2 + 2) + 1; +use Test::More 'no_plan'; use Thread::Cleanup; @@ -62,26 +52,25 @@ sub cb { sleep 1; } -my @tids; - -my @t = map { +my @threads = map { local $x = $_; - my $thr = threads->create(\&cb, $_); - push @tids, $thr->tid; - $thr; + spawn(\&cb, $_); } 0 .. 4; -diag "Using threads $threads::VERSION"; -diag "Using threads::shared $threads::shared::VERSION"; +my @tids = map $_->tid, @threads; -$_->detach for @t; +$_->detach for @threads; sleep 2; is $x, -1, '$x in the main thread'; -is $ran{$_}, 1, "thread $_ was run once" for @tids; +for (@tids) { + is $ran{$_}, 1, "thread $_ was run once"; + is $called{$_}, undef, "thread $_ destructor wasn't called yet"; +} END { - is $called{$_}, 1, "thread $_ destructor was called once" for @tids; + is $called{$_}, 1, "thread $_ destructor was called once at END time" + for @tids; }