bump version
[gitmo/Moo.git] / t / sub-defer-threads.t
1 use Config;
2 BEGIN {
3   unless ($Config{useithreads}) {
4     print "1..0 # SKIP your perl does not support ithreads\n";
5     exit 0;
6   }
7 }
8 use threads;
9 use strictures 1;
10 use Test::More;
11
12 use Sub::Defer;
13
14 my %made;
15
16 my $one_defer = defer_sub 'Foo::one' => sub {
17   die "remade - wtf" if $made{'Foo::one'};
18   $made{'Foo::one'} = sub { 'one' }
19 };
20
21 is(threads->create(sub {
22   my $info = Sub::Defer::defer_info($one_defer);
23   $info && $info->[0];
24 })->join, 'Foo::one', 'able to retrieve info in thread');
25
26 is(threads->create(sub {
27   undefer_sub($one_defer);
28   $made{'Foo::one'} && $made{'Foo::one'} == \&Foo::one && 1234;
29 })->join, 1234, 'able to undefer in thread');
30
31 done_testing;