]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/Lock.pm
renamed Posting::Handle as Posting::Admin
[selfforum.git] / selfforum-cgi / shared / Lock.pm
index 1d2c929cc05c4aa0b5814312b348e0a3711ba527..f7234f07d9271907af9afbb38ef2fa7a70bcfc85 100644 (file)
@@ -12,14 +12,13 @@ use strict;
 
 package Lock;
 
 
 package Lock;
 
-use vars qw(@ISA @EXPORT_OK %EXPORT_TAGS $Timeout $violentTimeout $masterTimeout $iAmMaster);
+use vars qw(@EXPORT_OK %EXPORT_TAGS $Timeout $violentTimeout $masterTimeout $iAmMaster);
 
 # ====================================================
 # Funktionsexport
 # ====================================================
 
 
 # ====================================================
 # Funktionsexport
 # ====================================================
 
-require Exporter;
-@ISA         = qw(Exporter);
+use base qw(Exporter);
 
 @EXPORT_OK   = qw(lock_file unlock_file write_lock_file write_unlock_file
                   violent_unlock_file set_master_lock release_file);
 
 @EXPORT_OK   = qw(lock_file unlock_file write_lock_file write_unlock_file
                   violent_unlock_file set_master_lock release_file);
@@ -476,9 +475,16 @@ sub w_set_ref ($$$) {
   # Neuen Referenzwert schreiben
   $old+=$z;
   $old=0 if ($old < 0);
   # Neuen Referenzwert schreiben
   $old+=$z;
   $old=0 if ($old < 0);
-  open REF,">$reffile" or return 0;
-  print REF $old;
-  close REF or return 0;
+  if ($old == 0)
+  {
+    unlink $reffile or return 0;
+  }
+  else
+  {
+    open REF,">$reffile" or return 0;
+    print REF $old or return 0;
+    close REF or return 0;
+  }
 
   # wieder entsperren
   return 0 unless(&simple_unlock($reffile));
 
   # wieder entsperren
   return 0 unless(&simple_unlock($reffile));
@@ -521,9 +527,16 @@ sub x_set_ref ($$$) {
   # Neuen Referenzwert schreiben
   $old += $z;
   $old = 0 if ($old < 0);
   # Neuen Referenzwert schreiben
   $old += $z;
   $old = 0 if ($old < 0);
-  open REF,">$reffile" or return 0;
-  print REF $old;
-  close REF or return 0;
+  if ($old == 0)
+  {
+    unlink $reffile or return 0;
+  }
+  else
+  {
+    open REF,">$reffile" or return 0;
+    print REF $old or return 0;
+    close REF or return 0;
+  }
 
   # wieder entsperren
   return 0 unless(&simple_unlock($reffile));
 
   # wieder entsperren
   return 0 unless(&simple_unlock($reffile));

patrick-canterino.de