package Xmldoom::Threads; use Module::Runtime qw(use_module); use strict; BEGIN { if ( $threads::threads ) { use_module 'Thread::Shared'; } } sub make_shared { my $value = shift; my $shared = shift; if ( $shared ) { if ( $threads::threads ) { return Thread::Shared::convert($value); } else { print "WARNING: Unable to copy this value into shared memory because threading is not enabled. Use module 'threads' as close to the beginning of your script as possible to enable."; } } return $value; } sub is_shared { my $value = shift; if ( $threads::threads and Thread::Shared::one_of_us($value) ) { return 1; } return 0; } 1;