File: 40_threads.t

package info (click to toggle)
libdata-messagepack-perl 1.02-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,060 kB
  • sloc: ansic: 5,697; perl: 1,123; makefile: 10
file content (37 lines) | stat: -rw-r--r-- 732 bytes parent folder | download | duplicates (7)
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
#!perl
use strict;
use warnings;
use constant HAS_THREADS => eval { require threads };
use if !HAS_THREADS, 'Test::More', skip_all => 'no threads';
use Test::More;

use Data::MessagePack;

my $true  = Data::MessagePack->unpack("\xc3");
my $false = Data::MessagePack->unpack("\xc2");

ok $true;
ok !$false;

threads->create(sub {
    my $T = Data::MessagePack->unpack("\xc3");
    my $F = Data::MessagePack->unpack("\xc2");

    ok $T;
    ok !$F;

    is_deeply $T, $true;
    is_deeply $F, $false;

})->join();

$Data::MessagePack::PreferInteger = 0;

threads->create(sub{
    $Data::MessagePack::PreferInteger = 1;
})->join();

is $Data::MessagePack::PreferInteger, 0, '$PreferInteger is a thread-local variable';

done_testing;