]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/Lock/Unlink.pm
improved the behavior of get_all_threads and create_forum_xml_string
[selfforum.git] / selfforum-cgi / shared / Lock / Unlink.pm
index d7bd6ecbb782e9d6a2f0e16f5fe66c7779eeef55..0042ff743d0e3195d70b5fdaf09aedd5be1e5b41 100644 (file)
@@ -4,7 +4,7 @@ package Lock::Unlink;
 #                                                                              #
 # File:        shared/Lock/Unlink.pm                                           #
 #                                                                              #
 #                                                                              #
 # File:        shared/Lock/Unlink.pm                                           #
 #                                                                              #
-# Authors:     Andre Malo       <nd@o3media.de>, 2001-05-25                    #
+# Authors:     André Malo <nd@o3media.de>                                      #
 #                                                                              #
 # Description: Locking and Filehandle class                                    #
 #              using the atomic behavior of unlinkig files                     #
 #                                                                              #
 # Description: Locking and Filehandle class                                    #
 #              using the atomic behavior of unlinkig files                     #
@@ -12,19 +12,19 @@ package Lock::Unlink;
 ################################################################################
 
 use strict;
 ################################################################################
 
 use strict;
-use vars qw(
-  $VERSION
-);
-
 use Fcntl;
 
 ################################################################################
 #
 # Version check
 #
 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)
 #
 # simple file lock
 # (unlink lock file)
@@ -42,7 +42,7 @@ sub _simple_lock {
   return;
 }
 
   return;
 }
 
-### sub _simple_unlock #########################################################
+### _simple_unlock () ##########################################################
 #
 # simple file unlock
 # (create lock file)
 #
 # simple file unlock
 # (create lock file)
@@ -65,7 +65,7 @@ sub _simple_unlock {
   return;
 }
 
   return;
 }
 
-### sub _reftime ###############################################################
+### _reftime () ################################################################
 #
 # determine reference time for violent unlock
 #
 #
 # determine reference time for violent unlock
 #
@@ -86,7 +86,7 @@ sub _reftime {
   $time;
 }
 
   $time;
 }
 
-### sub masterlocked ###########################################################
+### masterlocked () ############################################################
 #
 # check on master lock status of the file
 #
 #
 # check on master lock status of the file
 #
@@ -96,7 +96,7 @@ sub _reftime {
 #
 sub masterlocked {not -f shift -> masterlock}
 
 #
 sub masterlocked {not -f shift -> masterlock}
 
-### sub excl_announced #########################################################
+### excl_announced () ##########################################################
 #
 # check on exclusive lock announced status of the file
 #
 #
 # 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 excl_announced {not -f shift -> lockfile}
 
-### sub exsh_announced #########################################################
+### exsh_announced () ##########################################################
 #
 # check on exclusive shared lock status of the file
 #
 #
 # 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}
 
 #
 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;
 
 #
 #
 # keep 'require' happy
 1;
 
 #
 #
-### end of Lock::Unlink ########################################################
+### end of Lock::Unlink ########################################################
\ No newline at end of file

patrick-canterino.de