version 1.2, 2006/05/30 12:45:12
|
version 1.6, 2006/06/19 09:35:08
|
Line 167 sub untie_user_hash {
|
Line 167 sub untie_user_hash {
|
return &_locking_hash_untie(@_); |
return &_locking_hash_untie(@_); |
} |
} |
|
|
|
# routines if you just have a filename |
|
# return tied hashref or undef |
|
|
|
sub locking_hash_tie { |
|
my ($filename,$how)=@_; |
|
my ($file_prefix,$namespace)=&db_filename_parts($filename); |
|
unless ($namespace) { return undef; } |
|
return &_locking_hash_tie($file_prefix,$namespace,$how); |
|
} |
|
|
|
sub locking_hash_untie { |
|
return &_locking_hash_untie(@_); |
|
} |
|
|
|
sub db_filename_parts { |
|
my ($filename)=@_; |
|
my ($file_path,$namespace)=($filename=~/^(.*)\/([^\/]+)\.db$/); |
|
unless ($namespace) { return undef; } |
|
return ($file_path.'/'.$namespace,$namespace); |
|
} |
|
|
# internal routines that handle the actual tieing and untieing process |
# internal routines that handle the actual tieing and untieing process |
|
|
sub _do_hash_tie { |
sub _do_hash_tie { |
Line 176 sub _do_hash_tie {
|
Line 197 sub _do_hash_tie {
|
# If this is a namespace for which a history is kept, |
# If this is a namespace for which a history is kept, |
# make the history log entry: |
# make the history log entry: |
if (($namespace !~/^nohist\_/) && (defined($loghead))) { |
if (($namespace !~/^nohist\_/) && (defined($loghead))) { |
my $args = scalar @_; |
|
Debug(" Opening history: $file_prefix $args"); |
|
my $hfh = IO::File->new(">>$file_prefix.hist"); |
my $hfh = IO::File->new(">>$file_prefix.hist"); |
if($hfh) { |
if($hfh) { |
my $now = time; |
my $now = time(); |
print $hfh "$loghead:$now:$what\n"; |
print $hfh ("$loghead:$now:$what\n"); |
} |
} |
$hfh->close; |
$hfh->close; |
} |
} |
Line 230 sub _do_hash_untie {
|
Line 249 sub _do_hash_untie {
|
# Writing needs exclusive lock |
# Writing needs exclusive lock |
if (!&flock_sym(LOCK_EX)) { return undef; } |
if (!&flock_sym(LOCK_EX)) { return undef; } |
} else { |
} else { |
&logthis("Unknown method $how for $file_prefix"); |
die("Unknown method $how for $file_prefix"); |
die(); |
|
} |
} |
# The file is ours! |
# The file is ours! |
# If it is archived, un-archive it now |
# If it is archived, un-archive it now |
Line 279 sub _do_hash_untie {
|
Line 297 sub _do_hash_untie {
|
} |
} |
|
|
BEGIN { |
BEGIN { |
my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf'); |
%perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')}; |
%perlvar=%{$perlvarref}; |
|
undef $perlvarref; |
|
} |
} |
|
|
1; |
1; |