1256a93a4Safresh1#!./perl 2256a93a4Safresh1 3256a93a4Safresh1use strict; 4256a93a4Safresh1use warnings; 5256a93a4Safresh1 6256a93a4Safresh1use Config (); 7256a93a4Safresh1use if !$Config::Config{usethreads}, 'Test::More', 8256a93a4Safresh1 skip_all => "This perl does not support threads"; 9256a93a4Safresh1 10256a93a4Safresh1use Test::More; 11256a93a4Safresh1use XS::APItest; 12256a93a4Safresh1 13256a93a4Safresh1use threads; 14256a93a4Safresh1use threads::shared; 15256a93a4Safresh1 16256a93a4Safresh1ok(threads->create( sub { SvIsBOOL($_[0]) }, !!0 )->join, 17256a93a4Safresh1 'value in to thread is bool'); 18256a93a4Safresh1 19256a93a4Safresh1ok(SvIsBOOL(threads->create( sub { return !!0 } )->join), 20256a93a4Safresh1 'value out of thread is bool'); 21256a93a4Safresh1 22256a93a4Safresh1{ 23256a93a4Safresh1 my $var = !!0; 24256a93a4Safresh1 ok(threads->create( sub { SvIsBOOL($var) } )->join, 25256a93a4Safresh1 'variable captured by thread is bool'); 26256a93a4Safresh1} 27256a93a4Safresh1 28256a93a4Safresh1{ 29256a93a4Safresh1 my $sharedvar :shared = !!0; 30256a93a4Safresh1 31256a93a4Safresh1 ok(SvIsBOOL($sharedvar), 32256a93a4Safresh1 ':shared variable is bool outside'); 33256a93a4Safresh1 34256a93a4Safresh1 ok(threads->create( sub { SvIsBOOL($sharedvar) } )->join, 35256a93a4Safresh1 ':shared variable is bool inside thread'); 36256a93a4Safresh1} 37256a93a4Safresh1 38*f2a19305Safresh1is(test_bool_internals(), 0, "Bulk test internal bool related APIs"); 39*f2a19305Safresh1 40256a93a4Safresh1done_testing; 41