X-Git-Url: https://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=32936fba6e44a32134e004ca99923066961f7fe5;hb=1532532dd4d3670d6d55560bbc3cbb0b238f74cd;hp=2fa4ed9645f77188cfe5079fbd2259b37176c022;hpb=7d7cf60596ceca211e4801e262f3c27124048dd0;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index 2fa4ed9..32936fb 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -1073,11 +1073,11 @@ class Room { if ($table_cur->player_n == PLAYERS_N) { log_main("PLAYERS == N TABLE ".$table_idx); - if (($sem = Briskin5::lock_data($table_idx)) != FALSE) { + if (($sem = Bin5::lock_data($table_idx)) != FALSE) { log_main("bin5 lock data success"); $no_recovery = FALSE; - if (($bri = &Briskin5::load_data($table_idx)) != FALSE) { + if (($bri = Bin5::load_data($table_idx)) != FALSE) { if ($table_cur->table_token != $bri->table_token) { log_main("ERROR: not matching table_token. Room: ".$table_cur->table_token." Table: ".$bri->table_token); log_main("ERROR: not matching table_start. Room: ".$table_cur->table_start." Table: ".$bri->table_start); @@ -1124,7 +1124,7 @@ class Room { $this->room_join_wakeup(&$user_cur, FALSE, 0); $table_cur->table_token = ""; $table_cur->wakeup_time = $curtime + WAKEUP_TIME; - Briskin5::destroy_data($table_idx); + Bin5::destroy_data($table_idx); } else { log_main("gm:: save_data"); @@ -1133,9 +1133,9 @@ class Room { $this->user[$table_cur->player[$i]]->lacc = $bri->user[$i]->lacc; } - Briskin5::save_data(&$bri); + Bin5::save_data(&$bri); } - } // else if (($bri = &Briskin5::load_data($table_idx)) != FALSE) { + } // else if (($bri = &Bin5::load_data($table_idx)) != FALSE) { else if ($no_recovery == FALSE) { log_crit("ERROR: table ".$table_idx." unrecoverable join"); @@ -1163,7 +1163,7 @@ class Room { $table_cur->table_token = ""; } - Briskin5::unlock_data($sem); + Bin5::unlock_data($sem); } // bri::lock_data } // if ($table_cur->player_n == PLAYERS_N) { } // for ($table_idx = 0 ; $table_idx < TABLES_N ; $table_idx++) { @@ -1936,9 +1936,9 @@ class Room { $bri_user->comm[$bri_user->step % COMM_N] .= $to_tabl; $bri_user->step_inc(); } - Briskin5::save_data(&$bri); + Bin5::save_data(&$bri); } - Briskin5::unlock_data($sem); + Bin5::unlock_data($sem); } // bri::lock_data } // if ($table_cur->player_n == PLAYERS_N) { } // for ($table_idx = 0 ; $table_idx < TABLES_N ; $table_idx++) { @@ -2092,15 +2092,15 @@ class Room { if ($ghost_user->stat == "table" && $this->table[$table_idx]->player_n == PLAYERS_N) { // FIXME BRISK4: include for each kind of table require_once("${G_base}briskin5/Obj/briskin5.phh"); - if (($brisem = Briskin5::lock_data($table_idx)) != FALSE) { - if (($bri = &Briskin5::load_data($table_idx)) != FALSE) { + if (($brisem = Bin5::lock_data($table_idx)) != FALSE) { + if (($bri = &Bin5::load_data($table_idx)) != FALSE) { if ($bri->the_end != TRUE) { $bri->user[$ghost_user->table_pos]->step_inc(); $bri->user[$ghost_user->table_pos]->sess = $sess; - Briskin5::save_data(&$bri); + Bin5::save_data(&$bri); } } - Briskin5::unlock_data($brisem); + Bin5::unlock_data($brisem); } } @@ -2283,7 +2283,7 @@ class Room { shm_detach($shm); for ($i = 0 ; $i < MAX_PLAYERS ; $i++) { - $room->user[$i] = User::load_data($i); + $room->user[$i] = User::load_data($i, FALSE); } } @@ -2381,32 +2381,33 @@ class Room { User::save_data($user_park[$i], $i); $room->user[$i] = $user_park[$i]; } + log_load("FINISH: ".($ret == TRUE ? "TRUE" : "FALSE")); return ($ret); } - function lock_data() + static function lock_data() { - GLOBAL $sess; - - // echo "LOCK: ".FTOK_PATH."/main"; - // exit; - if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) { - return (FALSE); - } - // echo "FTOK ".$tok."
"; - if (($res = sem_get($tok)) == FALSE) { - return (FALSE); - } - if (sem_acquire($res)) { - log_lock("LOCK room"); - return ($res); - } - else - return (FALSE); + GLOBAL $sess; + + // echo "LOCK: ".FTOK_PATH."/main"; + // exit; + if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) { + return (FALSE); + } + // echo "FTOK ".$tok."
"; + if (($res = sem_get($tok)) == FALSE) { + return (FALSE); + } + if (sem_acquire($res)) { + log_lock("LOCK room"); + return ($res); + } + else + return (FALSE); } - function unlock_data($res) + static function unlock_data($res) { GLOBAL $sess; @@ -2541,240 +2542,282 @@ function make_seed() return (float) $sec + ((float) $usec * 100000); } +function btrace_line($ar) +{ + GLOBAL $G_btrace_pref_sub; -function log_mop($step, $log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LMOP) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LMOP) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("LMOP: [%f] [%05d] [%s] [%s]\n", gettimeofday(TRUE), $step, $PHP_SELF, $log)); - fclose($fp); - } + $ret = ""; + for ($i = 0 ; $i < count($ar) ; $i++) { + $with_class = isset($ar[$i]['class']); + $with_file = isset($ar[$i]['file']); + $ret .= sprintf("%s%s%s (%s:%d)", ($i == 0 ? "" : ", "), + ($with_class ? $ar[$i]['class'].$ar[$i]['type'] : ""), + $ar[$i]['function'], ($with_file ? str_replace($G_btrace_pref_sub, "", $ar[$i]['file']) : ""), + ($with_file ? $ar[$i]['line'] : "")); + } + + return ($ret); } - -function log_only2($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_ONL2) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_ONL2) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("ONL2: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_mop($step, $log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LMOP) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LMOP) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("LMOP: [%f] [%05d] [%s] [%s]\n", gettimeofday(TRUE), $step, $log, $btrace)); + fclose($fp); + } } -function log_crit($log) { - GLOBAL $sess, $PHP_SELF; - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_CRIT) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_CRIT) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("CRIT: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_only2($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_ONL2) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_ONL2) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("ONL2: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_only($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_ONLY) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_ONLY) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("ONLY: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_crit($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_CRIT) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_CRIT) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("CRIT: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_main($log) { +function log_only($log) +{ GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_MAIN) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_MAIN) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("MAIN: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_ONLY) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_ONLY) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("ONLY: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_rd($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_READ) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_READ) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("READ: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_main($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_MAIN) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_MAIN) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("MAIN: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_rd2($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_REA2) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_REA2) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("REA2: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_rd($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_READ) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_READ) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("READ: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_send($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_SEND) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_SEND) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("SEND: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_rd2($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_REA2) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_REA2) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("REA2: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_lock($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LOCK) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LOCK) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("LOCK: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_send($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_SEND) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_SEND) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("SEND: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_wr($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_WRIT) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; - - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_WRIT) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("WRIT: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_lock($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LOCK) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LOCK) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("LOCK: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_load($log) { - GLOBAL $sess, $PHP_SELF; - - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LOAD) == 0) - return; - - if (isset($sess) == FALSE) - $ssess = "XXXX"; - else - $ssess = $sess; +function log_wr($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_WRIT) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_WRIT) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("WRIT: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } +} - if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LOAD) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("LOAD: [%s] [%s] [%s]\n", $ssess, $PHP_SELF, $log)); - fclose($fp); - } +function log_load($log) +{ + GLOBAL $sess, $PHP_SELF; + + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_LOAD) == 0) + return; + + if (isset($sess) == FALSE) + $ssess = "XXXX"; + else + $ssess = $sess; + + if (( (BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_LOAD) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("LOAD: [%s] [%s] [%s]\n", $ssess, $log, $btrace)); + fclose($fp); + } } -function log_auth($sess, $log) { +function log_auth($sess, $log) +{ GLOBAL $PHP_SELF; - if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_AUTH) == 0) - return; - if (( (BRISK_DEBUG | ($sess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_AUTH) == 0) - return; - - if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { - fwrite($fp, sprintf("AUTH: [%s] [%d] [%s] [%s]\n", $sess, time(), $PHP_SELF, $log)); - fclose($fp); - } + if (BRISK_SINGLE_SESS == "" && (BRISK_DEBUG & DBG_AUTH) == 0) + return; + + if (( (BRISK_DEBUG | ($sess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_AUTH) == 0) + return; + + $btrace = btrace_line(debug_backtrace()); + if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) { + fwrite($fp, sprintf("LOAD: [%s] [%d] [%s] [%s]\n", $sess, time(), $log, $btrace)); + fclose($fp); + } }