X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fhardban.phh;h=e26fc4c7d5355af81bf8f7dce97133c5c1397b0c;hb=8e74a78fab641d685d534a821f114eda7c2cdd78;hp=ffec9c631ee356d085285d3bc8c929333e075e1d;hpb=9cbf3bfaad0cad7feaf6413eb53df0a1475c6303;p=brisk.git diff --git a/web/Obj/hardban.phh b/web/Obj/hardban.phh index ffec9c6..e26fc4c 100644 --- a/web/Obj/hardban.phh +++ b/web/Obj/hardban.phh @@ -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)); }