|
Packit |
f354a3 |
use strict;
|
|
Packit |
f354a3 |
use warnings;
|
|
Packit |
f354a3 |
use Test::More;
|
|
Packit |
f354a3 |
use Config;
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
BEGIN {
|
|
Packit |
f354a3 |
plan skip_all => 'Perl compiled without ithreads'
|
|
Packit |
f354a3 |
unless $Config{useithreads};
|
|
Packit |
f354a3 |
plan skip_all => 'no threads.pm'
|
|
Packit |
f354a3 |
unless eval { require threads };
|
|
Packit |
f354a3 |
plan tests => 2;
|
|
Packit |
f354a3 |
}
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
use threads;
|
|
Packit |
f354a3 |
use Digest::MD5;
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
my $module = 'Digest::MD5';
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
my $obj = $module->new;
|
|
Packit |
f354a3 |
$obj->add("foo");
|
|
Packit |
f354a3 |
my $tdigest = threads->create(sub { $obj->add("bar"); $obj->hexdigest })->join;
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
isnt $obj->clone->hexdigest, $tdigest, "unshared object unaffected by the thread";
|
|
Packit |
f354a3 |
|
|
Packit |
f354a3 |
$obj->add("bar");
|
|
Packit |
f354a3 |
is $obj->clone->hexdigest, $tdigest;
|