Skip to content

Commit 12922b1

Browse files
committed
Fix thread possibly not being terminated in some cases
1 parent ce1ee6c commit 12922b1

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

Common/src/main/kotlin/gay/object/hexdebug/adapter/DebugAdapter.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,7 @@ class DebugAdapter(val player: ServerPlayer) : IDebugProtocolServer {
229229

230230
// TODO: set nonzero exit code if we hit a mishap
231231
if (result.isDone) {
232-
terminateThreads(TerminateThreadsArguments().also {
233-
it.threadIds = intArrayOf(threadId)
234-
})
232+
terminateThreads(listOf(threadId))
235233
return view
236234
}
237235

@@ -456,13 +454,16 @@ class DebugAdapter(val player: ServerPlayer) : IDebugProtocolServer {
456454
val toRemove = args.threadIds.filter { inRangeDebugger(it) != null }
457455
if (toRemove.isEmpty()) return futureOf()
458456

457+
terminateThreads(toRemove)
458+
459+
return futureOf()
460+
}
461+
462+
private fun terminateThreads(toRemove: List<Int>) {
459463
for (threadId in toRemove) {
460464
removeThreadInner(threadId, terminate = true)
461465
}
462-
463466
postRemoveThreads(toRemove)
464-
465-
return futureOf()
466467
}
467468

468469
private fun removeThreadInner(threadId: Int, terminate: Boolean) {

0 commit comments

Comments
 (0)