log_shme() function added and DBG_SHME flag
[brisk.git] / web / Obj / hardban.phh
index ffec9c6..e26fc4c 100644 (file)
@@ -44,6 +44,8 @@ class Hardban {
 }
 
 class Hardbans {
+    static $delta_t;
+
   var $item;
   var $item_n;
   var $mod;
@@ -155,11 +157,10 @@ class Hardbans {
   function load_data() 
   {
     GLOBAL $sess;
-    $doexit = FALSE;
+
     do {
       if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
        log_main("ftok failed");
-       $doexit = TRUE;
        break;
       }
     
@@ -171,7 +172,7 @@ class Hardbans {
        $shm_sz = HBAN_SHM_DIMS_MIN;
 
       if ($shm = shm_attach($tok, $shm_sz)) {
-       $hban = @shm_get_var($shm, $tok);
+          $hban = @shm_get_var($shm, $tok); // CHECKED BELOW
        
        log_only("hardban ==  ".($hban == FALSE ?   "FALSE" : "TRUE")."  hardban ===  ".($hban === FALSE ? "FALSE" : "TRUE")."  hardban isset ".(isset($hban) ?   "TRUE" : "FALSE"));
        
@@ -183,6 +184,8 @@ class Hardbans {
            log_only("PUT_VAR FALLITA ".strlen(serialize($hban)));
            log_only(serialize($hban));
          }
+          log_shme("Hardban::save_data2");
+
        }
        $hban->shm_sz = $shm_sz;
        
@@ -194,9 +197,6 @@ class Hardbans {
       return ($hban);
     } while (0);
     
-    if ($doexit)
-      exit();
-    
     return (FALSE);
   }
   
@@ -217,8 +217,9 @@ class Hardbans {
         log_only("hardban count ".count($hban->item)."  _n: ".$hban->item_n);
 
       $hban->mod = FALSE;
-      if (shm_put_var($shm, $tok, $hban) != FALSE) {
+      if (@shm_put_var($shm, $tok, $hban) != FALSE) {
        shm_detach($shm);
+        log_shme("Hardban::save_data");
        return (TRUE);
       }
       $hban->mod = $oldmod;
@@ -247,7 +248,8 @@ class Hardbans {
       return (FALSE);
     }
     if (sem_acquire($res)) {   
-      log_lock("LOCK hardbans");
+        self::$delta_t = microtime(TRUE);
+        log_lock("LOCK   hardbans     [".self::$delta_t."]");
       return ($res);
     }
     else
@@ -258,7 +260,7 @@ class Hardbans {
   {
     GLOBAL $sess; 
     
-    log_lock("UNLOCK hardbans");
+    log_lock("UNLOCK hardbans     [".(microtime(TRUE) - (self::$delta_t))."]");
 
     return (sem_release($res));
   }