From 9d3877e448b6d985a82aa1ef521ca77fd33dc669 Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Wed, 8 Apr 2026 13:30:50 +0200 Subject: [PATCH] Fix JKRDecomp crash I caused By changing more things :sloggers: --- libs/JSystem/src/JKernel/JKRThread.cpp | 6 +++++- src/dusk/OSThread.cpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libs/JSystem/src/JKernel/JKRThread.cpp b/libs/JSystem/src/JKernel/JKRThread.cpp index 103e6bbcbc..31c2cbe6e5 100644 --- a/libs/JSystem/src/JKernel/JKRThread.cpp +++ b/libs/JSystem/src/JKernel/JKRThread.cpp @@ -88,7 +88,11 @@ void JKRThread::setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param mThreadRecord = (OSThread*)JKRAllocFromHeap(mHeap, sizeof(OSThread), 0x20); JUT_ASSERT(168, mThreadRecord); - OSCreateThread(mThreadRecord, start, this, (u8*)mStackMemory + mStackSize, mStackSize, param_3, 1); +#if TARGET_PC + OSCreateThread(mThreadRecord, start, this, (u8*)mStackMemory + mStackSize, mStackSize, param_3, 0); +#else + OSCreateThread(mThreadRecord, start, this, (u8*)mStackMemory + mStackSize, mStackSize, param_3, OS_THREAD_ATTR_DETACH); +#endif } void* JKRThread::start(void* thread) { diff --git a/src/dusk/OSThread.cpp b/src/dusk/OSThread.cpp index af339e8656..d5d73df243 100644 --- a/src/dusk/OSThread.cpp +++ b/src/dusk/OSThread.cpp @@ -41,7 +41,7 @@ struct PCThreadData { bool suspended = false; ~PCThreadData() { - if (dusk::IsShuttingDown) { + if (dusk::IsShuttingDown && nativeThread.joinable()) { // Don't care about threads if we're shutting down. nativeThread.detach(); }