use threads qw(stringify);
use threads::shared;
my %contacts : shared;
####
$contacts{$contact} = &share( {} );
share( $contacts{$contact}{'a'} );
share( $contacts{$contact}{'inc_dnd'} );
share( $contacts{$contact}{'lock'} );
$contacts{$contact}{'a'} = 1;
$contacts{$contact}{'inc_dnd'} = &share( {} );
$contacts{$contact}{'lock'} = 0;
####
DB<2> print Dumper $contacts{$user_id}
$VAR1 = {
'inc_dnd' => {},
'a' => '1',
'lock' => '0',
'd' => '/tmp'
};
####
170: lock( $contacts{$user_id} );
DB<2> print is_shared($contacts{$user_id})
226839368
DB<3> n
lock can only be used on shared values at get_contacts_pool_photos.pl line 170.
at get_contacts_pool_photos.pl line 170
main::get_contacts_pool_photos() called at get_contacts_pool_photos.pl line 93