From ea31ff2bae4fc9a0d68b7d7757f04b4693f898fd Mon Sep 17 00:00:00 2001 From: MarcinSc Date: Wed, 28 Aug 2024 12:07:04 +0700 Subject: [PATCH] Moved the creation of games and broadcasting outside of tournament lock to prevent theoretical deadlocks. These actions are now made through a list of actions returned from tournament advance method. --- .../src/main/java/com/gempukku/lotro/draft/DefaultDraft.java | 2 +- .../src/main/java/com/gempukku/lotro/draft/Draft.java | 2 +- .../java/com/gempukku/lotro/tournament/DefaultTournament.java | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java index bfa5134d4..ae449d380 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/DefaultDraft.java @@ -56,7 +56,7 @@ public class DefaultDraft implements Draft { } @Override - public void advanceDraft(TournamentCallback draftCallback) { + public void advanceDraft() { if (haveAllPlayersPicked()) { if (haveAllCardsBeenChosen()) { if (haveMorePacks()) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java index 88ec6c21a..6a1bc9158 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft/Draft.java @@ -6,7 +6,7 @@ import com.gempukku.lotro.game.CardCollection; import com.gempukku.lotro.tournament.TournamentCallback; public interface Draft { - public void advanceDraft(TournamentCallback draftCallback); + public void advanceDraft(); public void playerChosenCard(String playerName, String cardId); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/DefaultTournament.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/DefaultTournament.java index 49d5cf8ac..12e3ef2e2 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/DefaultTournament.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/tournament/DefaultTournament.java @@ -297,8 +297,7 @@ public class DefaultTournament implements Tournament { List result = new LinkedList<>(); if (_nextTask == null) { if (_tournamentStage == Stage.DRAFT) { - // Temporary - don't want to involve draft in this - _draft.advanceDraft(null); + _draft.advanceDraft(); if (_draft.isFinished()) { result.add(new BroadcastAction("Drafting in tournament " + _tournamentName + " is finished, starting deck building")); _tournamentStage = Stage.DECK_BUILDING;