used flock instead sem_* functions to be able to have exclusive and shared lock
authorMatteo Nastasi <nastasi@alternativeoutput.it>
Sun, 22 May 2011 18:05:06 +0000 (20:05 +0200)
committerMatteo Nastasi <nastasi@alternativeoutput.it>
Sun, 22 May 2011 18:05:06 +0000 (20:05 +0200)
web/Obj/auth.phh
web/Obj/brisk.phh
web/Obj/hardban.phh
web/briskin5/Obj/briskin5.phh

index 36b75ca..fba0987 100644 (file)
@@ -246,20 +246,14 @@ class Challenges {
 
     static function lock_data($is_exclusive)
     {
-        if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) {
-            return (FALSE);
-        }
-        // echo "FTOK ".$tok."<br>";
-        if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
-            return (FALSE);
-        }
-        if (sem_acquire($res)) {   
-            self::$delta_t = microtime(TRUE);
-            log_lock("LOCK   challenges   [".self::$delta_t."]");
-            return ($res);
-        }
-        else
-            return (FALSE);
+      if (($res = file_lock(FTOK_PATH."/challenges", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   challenges   [".self::$delta_t."]");
+          
+          return ($res);
+      }
+
+      return (FALSE);
     }
   
     static function unlock_data($res)
@@ -268,7 +262,7 @@ class Challenges {
     
         log_lock("UNLOCK challenges   [".(microtime(TRUE) - (self::$delta_t))."]");
 
-        return (sem_release($res));
+        file_unlock($res);
     }
 } // End CLASS Challenges
 
index 0dbb358..486fc28 100644 (file)
@@ -2462,25 +2462,14 @@ class Room {
 
   static function lock_data($is_exclusive)
   {
-      GLOBAL $sess; 
-      
-      //  echo "LOCK: ".FTOK_PATH."/main";
-      //  exit;
-      if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) {
-          return (FALSE);
-      }
-      // echo "FTOK ".$tok."<br>";
-      if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
-          return (FALSE);
-      }
-      if (sem_acquire($res)) {
+      if (($res = file_lock(FTOK_PATH."/main", $is_exclusive)) != FALSE) {
           self::$delta_t = microtime(TRUE);
           log_lock("LOCK   room         [".self::$delta_t."]");
-
+          
           return ($res);
       }
-      else
-          return (FALSE);
+
+      return (FALSE);
   }
   
   static function unlock_data($res)
@@ -2489,7 +2478,7 @@ class Room {
     
     log_lock("UNLOCK room         [".(microtime(TRUE) - (self::$delta_t))."]");
 
-    return (sem_release($res));
+    file_unlock($res);
   }
 
 
@@ -3106,21 +3095,13 @@ class Warrant {
 
   static function lock_data($is_exclusive)
   {
-    GLOBAL $sess; 
-    
-    if (($tok = @ftok(FTOK_PATH."/warrant", "B")) == -1) {
-      return (FALSE);
-    }
-    // echo "FTOK ".$tok."<br>";
-    if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
-      return (FALSE);
-    }
-    if (sem_acquire($res)) {   
-        self::$delta_t = microtime(TRUE);
-        log_lock("LOCK   warrant      [".self::$delta_t."]");
-      return ($res);
-    }
-    else
+      if (($res = file_lock(FTOK_PATH."/warrant", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   warrant      [".self::$delta_t."]");
+          
+          return ($res);
+      }
+
       return (FALSE);
   }
   
@@ -3130,7 +3111,7 @@ class Warrant {
     
     log_lock("UNLOCK warrant      [".(microtime(TRUE) - (self::$delta_t))."]");
 
-    return (sem_release($res));
+    file_unlock($res);
   }
 }
 
@@ -3139,22 +3120,13 @@ class Poll {
 
   static function lock_data($is_exclusive)
   {
-    GLOBAL $sess; 
-    
-    if (($tok = @ftok(FTOK_PATH."/poll", "B")) == -1) {
-      return (FALSE);
-    }
-    // echo "FTOK ".$tok."<br>";
-    if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
-      return (FALSE);
-    }
-    if (sem_acquire($res)) {
-        self::$delta_t = microtime(TRUE);
-        log_lock("LOCK   poll         [".self::$delta_t."]");
-      
-        return ($res);
-    }
-    else
+      if (($res = file_lock(FTOK_PATH."/poll", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   poll         [".self::$delta_t."]");
+          
+          return ($res);
+      }
+
       return (FALSE);
   }
   
@@ -3164,7 +3136,7 @@ class Poll {
     
     log_lock("UNLOCK poll         [".(microtime(TRUE) - (self::$delta_t))."]");
     
-    return (sem_release($res));
+    file_unlock($res);
   }
 }
 
index 477a410..1dd4b4e 100644 (file)
@@ -240,19 +240,13 @@ class Hardbans {
 
   static function lock_data($is_exclusive)
   {
-    if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
-      return (FALSE);
-    }
-    // echo "FTOK ".$tok."<br>";
-    if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
-      return (FALSE);
-    }
-    if (sem_acquire($res)) {   
-        self::$delta_t = microtime(TRUE);
-        log_lock("LOCK   hardbans     [".self::$delta_t."]");
-      return ($res);
-    }
-    else
+      if (($res = file_lock(FTOK_PATH."/hardbans", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   hardbans     [".self::$delta_t."]");
+          
+          return ($res);
+      }
+
       return (FALSE);
   }
   
@@ -262,7 +256,7 @@ class Hardbans {
     
     log_lock("UNLOCK hardbans     [".(microtime(TRUE) - (self::$delta_t))."]");
 
-    return (sem_release($res));
+    file_unlock($res);
   }
 
 
index 9484067..0987e47 100644 (file)
@@ -994,30 +994,16 @@ class Bin5 {
 
   static function lock_data($is_exclusive, $table_idx)
   {
-    GLOBAL $sess; 
-    
-    log_main("lockinfo: DATA ".FTOK_PATH."/bin5/table".$table_idx."/table");
-    //  echo "LOCK: ".FTOK_PATH."/main";
-    //  exit;
-    // WARNING monitor this step
-    if (($tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1) {
-      return (FALSE);
-    }
-    // WARNING monitor this step
-    if (($res = @sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
+      if (($res = file_lock(FTOK_PATH."/bin5/table".$table_idx."/table", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   table [".$table_idx."]         [".self::$delta_t[$table_idx]."]");
+          
+          return (new Vect(array('res' => $res, 'tab' => $table_idx)));
+      }
+      
       return (FALSE);
-    }
-    if (sem_acquire($res)) {   
-        self::$delta_t[$table_idx] = microtime(TRUE);
-        log_lock("LOCK   table [".$table_idx."]         [".self::$delta_t[$table_idx]."]");
-
-        return (new Vect(array('res' => $res, 'tab' => $table_idx)));
-    }
-    else {
-        log_lock("LOCK table ".$table_idx.":FAILED");
-        return (FALSE);
-    }
   }
+
   
   static function unlock_data($res_vect)
   {
@@ -1028,7 +1014,7 @@ class Bin5 {
 
     log_lock("UNLOCK table [".$tab."]         [".(microtime(TRUE) - (self::$delta_t[$tab]))."]");
 
-    return (sem_release($res));
+    file_unlock($res);
   }