diff options
-rw-r--r-- | main.cpp | 1 | ||||
-rw-r--r-- | referee.cpp | 4 | ||||
-rw-r--r-- | referee.h | 3 |
3 files changed, 8 insertions, 0 deletions
@@ -278,6 +278,7 @@ static void playMatch(Player &p1, Player &p2, int index, const Params ¶ms) { if (mres.ms1 / 1000 > timeout_msec || mres.ms2 / 1000 > timeout_msec) { mres.status = MatchResult::Status::timeout; mres.sc1 = mres.sc2 = 0; + referee.terminate(); goto match_done; } diff --git a/referee.cpp b/referee.cpp index 3f15b6b..7bf3a93 100644 --- a/referee.cpp +++ b/referee.cpp @@ -90,3 +90,7 @@ optional<vector<int>> Referee::getScores() { if (isEnd) return scores; else return nullopt; } + +void Referee::terminate() { + proc.terminate(); +} @@ -25,6 +25,9 @@ public: bool gameEnded(); optional<vector<int>> getScores(); + + // Kills the referee process + void terminate(); }; /* |