]> git.p6c8.net - selfforum.git/commitdiff
now the reference counter file will be deleted if the counter is zero - lets save...
authorndparker <>
Tue, 20 Mar 2001 09:02:01 +0000 (09:02 +0000)
committerndparker <>
Tue, 20 Mar 2001 09:02:01 +0000 (09:02 +0000)
selfforum-cgi/shared/Lock.pm

index 1d2c929cc05c4aa0b5814312b348e0a3711ba527..b1e42d37120dff29660152d1f7ca0f8da205e763 100644 (file)
@@ -476,9 +476,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 +528,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