blob: 578d3bcb8959b328f3cb3dc7b23241e8b29d266a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#!./perl
use strict;
use warnings;
use Config ();
use if !$Config::Config{usethreads}, 'Test::More',
skip_all => "This perl does not support threads";
use Test::More;
use XS::APItest;
use threads;
use threads::shared;
ok(threads->create( sub { SvIsBOOL($_[0]) }, !!0 )->join,
'value in to thread is bool');
ok(SvIsBOOL(threads->create( sub { return !!0 } )->join),
'value out of thread is bool');
{
my $var = !!0;
ok(threads->create( sub { SvIsBOOL($var) } )->join,
'variable captured by thread is bool');
}
{
my $sharedvar :shared = !!0;
ok(SvIsBOOL($sharedvar),
':shared variable is bool outside');
ok(threads->create( sub { SvIsBOOL($sharedvar) } )->join,
':shared variable is bool inside thread');
}
done_testing;
|