X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/4efca15bb2136c3e226eb4e372776fad95a955c9..f91793544f0d5c7f978e5cf6214d9882d7c4db7c:/selfforum-cgi/shared/Lock/Unlink.pm diff --git a/selfforum-cgi/shared/Lock/Unlink.pm b/selfforum-cgi/shared/Lock/Unlink.pm index d7bd6ec..0042ff7 100644 --- a/selfforum-cgi/shared/Lock/Unlink.pm +++ b/selfforum-cgi/shared/Lock/Unlink.pm @@ -4,7 +4,7 @@ package Lock::Unlink; # # # File: shared/Lock/Unlink.pm # # # -# Authors: Andre Malo , 2001-05-25 # +# Authors: André Malo # # # # Description: Locking and Filehandle class # # using the atomic behavior of unlinkig files # @@ -12,19 +12,19 @@ package Lock::Unlink; ################################################################################ use strict; -use vars qw( - $VERSION -); - use Fcntl; ################################################################################ # # Version check # -$VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; +# last modified: +# $Date$ (GMT) +# by $Author$ +# +sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'} -### sub _simple_lock ########################################################### +### _simple_lock () ############################################################ # # simple file lock # (unlink lock file) @@ -42,7 +42,7 @@ sub _simple_lock { return; } -### sub _simple_unlock ######################################################### +### _simple_unlock () ########################################################## # # simple file unlock # (create lock file) @@ -65,7 +65,7 @@ sub _simple_unlock { return; } -### sub _reftime ############################################################### +### _reftime () ################################################################ # # determine reference time for violent unlock # @@ -86,7 +86,7 @@ sub _reftime { $time; } -### sub masterlocked ########################################################### +### masterlocked () ############################################################ # # check on master lock status of the file # @@ -96,7 +96,7 @@ sub _reftime { # sub masterlocked {not -f shift -> masterlock} -### sub excl_announced ######################################################### +### excl_announced () ########################################################## # # check on exclusive lock announced status of the file # @@ -106,7 +106,7 @@ sub masterlocked {not -f shift -> masterlock} # sub excl_announced {not -f shift -> lockfile} -### sub exsh_announced ######################################################### +### exsh_announced () ########################################################## # # check on exclusive shared lock status of the file # @@ -116,9 +116,29 @@ sub excl_announced {not -f shift -> lockfile} # sub exsh_announced {not -f shift -> exshlock} +### purge () ################################################################### +# +# cover our traces after a file was removed +# +# Params: ~none~ +# +# Return: ~none~ +# +sub purge { + my $self = shift; + + $self -> set_ref (0); # reference counter = 0 + unlink ($self -> reflock); # remove reference counter lock + unlink ($self -> lockfile); # remove any write lock announce + unlink ($self -> exshlock); # remove any excl shared lock + unlink ($self -> masterlock); # remove master lock + + return; +} + # keep 'require' happy 1; # # -### end of Lock::Unlink ######################################################## +### end of Lock::Unlink ######################################################## \ No newline at end of file