version 1.9, 2006/06/27 14:49:29
|
version 1.10, 2006/06/27 15:21:28
|
Line 228 sub _do_hash_untie {
|
Line 228 sub _do_hash_untie {
|
|
|
{ |
{ |
my $sym; |
my $sym; |
|
my @pushed_syms; |
|
sub push_locking_hash_tie { |
|
if (!defined($sym)) { |
|
die("Invalid used of push_locking_hash_tie, should only be called after a lock has occurred and before and unlock."); |
|
} |
|
push(@pushed_syms,$sym); |
|
undef($sym); |
|
} |
|
|
|
sub pop_locking_hash_tie { |
|
if (defined($sym)) { |
|
die("Invalid nested used of pop_locking_hash_tie, should only be called after a unlock has occurred."); |
|
} |
|
$sym = pop(@pushed_syms); |
|
} |
|
|
sub _locking_hash_tie { |
sub _locking_hash_tie { |
my ($file_prefix,$namespace,$how,$loghead,$what) = @_; |
my ($file_prefix,$namespace,$how,$loghead,$what) = @_; |
if (defined($sym)) { |
if (defined($sym)) { |
die('Nested locking attempted, this is unsupportted'); |
die('Nested locking attempted withut proper use of push_locking_hahs_tie, this is unsupportted'); |
} |
} |
|
|
my $lock_type=LOCK_SH; |
my $lock_type=LOCK_SH; |