Improved network stability and other related fixes:

* server: fixed that a critical errors ignored in user commands threads (now it will be added to the logs);
* network: fixed frozen user responses in some use cases;
* network: fixed accidental and incorrect user responses (only latest response will be used now);
* network: improved freeze logs, added problem method name and code's line number;
* cheats: removed outdated deck and card load logic (only init.txt commands supports now);
* cheats: fixed wrong priority after add card dialog (closes #11437);
* cheats: improved stability and random errors on cheat executes (related to #11437);
* docs: added details on network and thread logic, human feedback life cycle, etc (see HumanPlayer, ThreadExecutorImpl);
This commit is contained in:
Oleg Agafonov 2023-11-24 21:22:16 +04:00
parent 4ba3e1fec5
commit 53add71826
33 changed files with 476 additions and 273 deletions

View file

@ -794,7 +794,7 @@ public abstract class GameImpl implements Game {
if (!concedingPlayers.contains(playerId)) {
logger.debug("Game over for player Id: " + playerId + " gameId " + getId());
concedingPlayers.add(playerId);
player.signalPlayerConcede();
player.signalPlayerConcede(); // will be executed on next priority
}
} else {
// no asynchronous action so check directly
@ -3799,8 +3799,9 @@ public abstract class GameImpl implements Game {
for (Player playerObject : getPlayers().values()) {
if (playerObject.isHuman() && playerObject.canRespond()) {
playerObject.resetStoredBookmark(this);
playerObject.abort();
playerObject.resetPlayerPassedActions();
playerObject.abort();
}
}
fireUpdatePlayersEvent();