X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=8663ca29a59a01101a9fee7758b51e039807fc56;hb=6a7088b090b78123ccfaa3ba00e1ea81647b173c;hp=8b126412119aa64766e1ebd9adc072aea3bd00dd;hpb=78f44060729d1f0c82a396aab1d05cbb75226d2d;p=brisk.git
diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh
index 8b12641..8663ca2 100644
--- a/web/Obj/brisk.phh
+++ b/web/Obj/brisk.phh
@@ -57,6 +57,7 @@ define(BAN_TIME, 3600);
define(GARBAGE_TIMEOUT, 10);
define(NICKSERV, "BriskServ");
+define(LOCK_SHARE_MAX, 10000);
define(DBG_ONL2, 0x0001);
define(DBG_ONLY, 0x0002);
@@ -1094,7 +1095,7 @@ class Room {
if ($table_cur->player_n == PLAYERS_N) {
log_main("PLAYERS == N TABLE ".$table_idx);
- if (($sem = Bin5::lock_data($table_idx)) != FALSE) {
+ if (($sem = Bin5::lock_data(TRUE, $table_idx)) != FALSE) {
log_main("bin5 lock data success");
$no_recovery = FALSE;
@@ -1933,7 +1934,7 @@ class Room {
if ($table_cur->player_n == PLAYERS_N) {
log_main("PLAYERS == N TABLE ".$table_idx);
- if (($sem = Bin5::lock_data($table_idx)) != FALSE) {
+ if (($sem = Bin5::lock_data(TRUE, $table_idx)) != FALSE) {
log_main("bin5 lock data success");
$no_recovery = FALSE;
@@ -2112,7 +2113,7 @@ 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 = Bin5::lock_data($table_idx)) != FALSE) {
+ if (($brisem = Bin5::lock_data(TRUE, $table_idx)) != FALSE) {
if (($bri = Bin5::load_data($table_idx)) != FALSE) {
if ($bri->the_end != TRUE) {
$bri->user[$ghost_user->table_pos]->step_inc();
@@ -2403,7 +2404,7 @@ class Room {
return ($ret);
}
- static function lock_data()
+ static function lock_data($is_exclusive)
{
GLOBAL $sess;
@@ -2413,7 +2414,7 @@ class Room {
return (FALSE);
}
// echo "FTOK ".$tok."
";
- if (($res = sem_get($tok)) == FALSE) {
+ if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
return (FALSE);
}
if (sem_acquire($res)) {
@@ -3047,7 +3048,7 @@ function sharedmem_sz($tok)
class Warrant {
static $delta_t;
- static function lock_data()
+ static function lock_data($is_exclusive)
{
GLOBAL $sess;
@@ -3055,7 +3056,7 @@ class Warrant {
return (FALSE);
}
// echo "FTOK ".$tok."
";
- if (($res = sem_get($tok)) == FALSE) {
+ if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
return (FALSE);
}
if (sem_acquire($res)) {
@@ -3080,7 +3081,7 @@ class Warrant {
class Poll {
static $delta_t;
- static function lock_data()
+ static function lock_data($is_exclusive)
{
GLOBAL $sess;
@@ -3088,7 +3089,7 @@ class Poll {
return (FALSE);
}
// echo "FTOK ".$tok."
";
- if (($res = sem_get($tok)) == FALSE) {
+ if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
return (FALSE);
}
if (sem_acquire($res)) {