Hello all.
I am trying to do the following:
I have a shared hash, namely %hash1
I initiate a lock. The I call for a function on a particular key, and assign the function value to the key. Is the lock still on? I could not find an answer to it, and the documentation I have found on perldoc does not cover that angle.
See code:
use strict ;
use threads ;
use threads::shared ;
my %hash1 =(1,2, 3,4) ;
{
lock (%hash1) ;
$hash1{1} = foo ($hash1{1});
$hash1{3} = foo ($hash1{3})
}
My question is: Is the advisory lock active when $hash{3} is accessed and assigned, or is calling foo removes the lock (because of use strict and the scoping limitation? )Trying to test it may be tricky, and I am not sure if I know how to cover most angles. Using foo to lock the variable is useless, and passing it a reference to the hash, and then locking, may cause deadlocks.