Skip to content

Commit 0746689

Browse files
fix: #180: increment generation in pause() to handle task validity correctly
1 parent 9f73b1a commit 0746689

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

server/src/main/kotlin/dev/robocode/tankroyale/server/core/ResettableTimer.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ class ResettableTimer(
118118
synchronized(lock) {
119119
if (!active || isPaused()) return
120120
pauseStartTimeNanos = System.nanoTime()
121+
generation += 1
121122
cancelScheduled()
122123
}
123124
}
@@ -136,6 +137,8 @@ class ResettableTimer(
136137
val remainingMin = (minDelayNanos - elapsed).coerceAtLeast(0L)
137138

138139
val delay = if (ready) remainingMin else remainingMax
140+
// Note: generation was already incremented in pause(), so any tasks
141+
// that fired during the pause are already ignored by executeIfValid()
139142
scheduleInternal(delay, generation)
140143
}
141144
}

0 commit comments

Comments
 (0)