[LON-CAPA-cvs] cvs: loncom / LONCAPA.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 27 Jun 2006 15:21:29 -0000
albertel Tue Jun 27 11:21:29 2006 EDT
Modified files:
/loncom LONCAPA.pm
Log:
- add ability for locking multiple dbs at once
Index: loncom/LONCAPA.pm
diff -u loncom/LONCAPA.pm:1.9 loncom/LONCAPA.pm:1.10
--- loncom/LONCAPA.pm:1.9 Tue Jun 27 10:49:29 2006
+++ loncom/LONCAPA.pm Tue Jun 27 11:21:28 2006
@@ -1,7 +1,7 @@
# The LearningOnline Network
# Base routines
#
-# $Id: LONCAPA.pm,v 1.9 2006/06/27 14:49:29 albertel Exp $
+# $Id: LONCAPA.pm,v 1.10 2006/06/27 15:21:28 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -228,11 +228,26 @@
{
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 {
my ($file_prefix,$namespace,$how,$loghead,$what) = @_;
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;