+ // Before all align times with table timeout
+ for ($table_idx = 0 ; $table_idx < TABLES_N ; $table_idx++) {
+ $table_cur =& $this->table[$table_idx];
+ // if the table is complete and exists its shared mem we get the info about users lacc
+
+ if ($table_cur->player_n == PLAYERS_N) {
+ log_main("PLAYERS == N TABLE ".$table_idx);
+
+ if (($sem = Briskin5::lock_data($table_idx)) != FALSE) {
+ log_main("bin5 lock data success");
+
+ if (($bri = &Briskin5::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);
+ $bri = FALSE;
+ }
+ }
+
+ if ($bri != FALSE) {
+ //
+ // SPAWN: JOIN
+ //
+ log_main("garbage_manager: bri loaded successfully.");
+ $bri->garbage_manager(TRUE);
+
+ $bri_table = &$bri->table[0];
+
+ // is the end of the table
+ if ($bri->the_end == TRUE) {
+ /*
+ * DESTROY OF FINISHED TABLE && MOVE PLAYER TO ROOM AGAIN
+ */
+ for ($i = 0 ; $i < $bri_table->player_n ; $i++) {
+ // stat must be "table" by definition
+ $user_cur =& $this->user[$table_cur->player[$i]];
+ $bri_user =& $bri->user[$i];
+
+ $user_cur->subst = $bri_user->subst;
+ $user_cur->step = $bri_user->step;
+ $user_cur->trans_step = $bri_user->step;
+ $user_cur->lacc = $bri_user->lacc;
+ $user_cur->laccwr = $bri_user->lacc;
+ $user_cur->bantime = $bri_user->bantime;
+ }
+
+ $this->room_join_wakeup(&$user_cur);
+ $table_cur->table_token = "";
+
+ Briskin5::destroy_data($table_idx);
+ }
+ else {
+ log_main("gm:: save_data");
+
+ for ($i = 0 ; $i < $bri_table->player_n ; $i++) {
+ $this->user[$table_cur->player[$i]]->lacc = $bri->user[$i]->lacc;
+ }
+
+ Briskin5::save_data(&$bri);
+ }
+ } // else if (($bri = &Briskin5::load_data($table_idx)) != FALSE) {
+ else {
+ log_main("ERROR: table ".$table_idx." unrecoverable join");
+ }
+ } // bri::lock_data
+ } // if ($table_cur->player_n == PLAYERS_N) {
+ } // for ($table_idx = 0 ; $table_idx < TABLES_N ; $table_idx++) {
+
+ log_rd2("out new loop.");
+