- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
- if (($fp = @fopen(BIN5_PROXY_PATH."/".$sess.".step", 'rb')) == FALSE)
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/".$sess.".step", 'rb')) == FALSE)
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
- if (($fp = @fopen(BIN5_PROXY_PATH."/".$this->sess.".step", 'w')) == FALSE)
+ if (file_exists(BIN5_PROXY_PATH."/table".$this->table_orig) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$this->table_orig, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/table".$this->table_orig."/".$this->sess.".step", 'w')) == FALSE)
break;
fwrite($fp, pack("LL",$this->step, $this->idx));
fclose($fp);
break;
fwrite($fp, pack("LL",$this->step, $this->idx));
fclose($fp);
// This part isn't strictly required but is good to verify
// the coerence of cached and User class saved value of step field.
$old_step = $user->step;
// This part isn't strictly required but is good to verify
// the coerence of cached and User class saved value of step field.
$old_step = $user->step;
$user->step = $arr['s'];
if ($old_step != $user->step) {
log_crit("Bin5:: steps are diffetents User->step ".$user->step." Old_step: ".$old_step);
$user->step = $arr['s'];
if ($old_step != $user->step) {
log_crit("Bin5:: steps are diffetents User->step ".$user->step." Old_step: ".$old_step);
for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
$user_cur = $this->user[$i];
if ($user_cur->sess == "" ||
for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
$user_cur = $this->user[$i];
if ($user_cur->sess == "" ||
log_rd2($user_cur->sess." GARBAGE UPDATED!");
// externalized $this->garbage_timeout = $curtime + GARBAGE_TIMEOUT;
log_rd2($user_cur->sess." GARBAGE UPDATED!");
// externalized $this->garbage_timeout = $curtime + GARBAGE_TIMEOUT;
- 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)) == 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)));
+ }
+
- }
- 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);
- }
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
$premsg = sprintf($mlang_brisk['nickdupl'][$G_lang], xcape($name_new));
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
$premsg = sprintf($mlang_brisk['nickdupl'][$G_lang], xcape($name_new));
(BIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->flags),
(BIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->name)));
if ($user_cur == $user) {
(BIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->flags),
(BIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->name)));
if ($user_cur == $user) {
- $itin = ($user->flags & USER_FLAG_AUTH ? "<i>" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "</i>" : "");
- $user_cur->comm[$user_cur->step % COMM_N] .= sprintf('$("myname").innerHTML = "<b>%s%s%s</b>";',
- $itin, xcape($user->name,ENT_COMPAT,"UTF-8"), $itou);
+ $user_cur->comm[$user_cur->step % COMM_N] .= $user_cur->myname_innerHTML();
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
- if (($fp = @fopen(BIN5_PROXY_PATH."/garbage_time.expired", 'rb')) == FALSE)
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/garbage_time.expired", 'rb')) == FALSE)
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
- if (($fp = @fopen(BIN5_PROXY_PATH."/garbage_time.expired", 'wb')) == FALSE)
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
+ if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/garbage_time.expired", 'wb')) == FALSE)
- $itin = ($user->flags & USER_FLAG_AUTH ? "<i>" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "</i>" : "");
-
- $ret .= sprintf('$("myname").innerHTML = "<b>%s%s%s</b>";', $itin, xcape($user->name), $itou);
+ $ret .= $user->myname_innerHTML();
$ret .= sprintf('set_names([%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"]); ',
$room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->flags,
xcape($room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->name),
$ret .= sprintf('set_names([%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"]); ',
$room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->flags,
xcape($room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->name),