diff options
author | Liam <byteslice@airmail.cc> | 2022-07-10 00:47:32 +0200 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2022-07-15 04:47:18 +0200 |
commit | 77137583cd49526a492293d47477657c23ca164f (patch) | |
tree | 7ab3fdc7a4dd8a02cdedf2004f3d21403022d36d /src/core/hle | |
parent | kernel: fix single-core preemption points (diff) | |
download | yuzu-77137583cd49526a492293d47477657c23ca164f.tar yuzu-77137583cd49526a492293d47477657c23ca164f.tar.gz yuzu-77137583cd49526a492293d47477657c23ca164f.tar.bz2 yuzu-77137583cd49526a492293d47477657c23ca164f.tar.lz yuzu-77137583cd49526a492293d47477657c23ca164f.tar.xz yuzu-77137583cd49526a492293d47477657c23ca164f.tar.zst yuzu-77137583cd49526a492293d47477657c23ca164f.zip |
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/kernel/k_scheduler.cpp | 1 | ||||
-rw-r--r-- | src/core/hle/kernel/k_thread.cpp | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/core/hle/kernel/k_scheduler.cpp b/src/core/hle/kernel/k_scheduler.cpp index 230ca3b95..d9ba8e409 100644 --- a/src/core/hle/kernel/k_scheduler.cpp +++ b/src/core/hle/kernel/k_scheduler.cpp @@ -70,6 +70,7 @@ void KScheduler::EnableScheduling(KernelCore& kernel, u64 cores_needing_scheduli GetCurrentThread(kernel).IfDummyThreadTryWait(); } GetCurrentThread(kernel).EnableDispatch(); + ASSERT(GetCurrentThread(kernel).GetState() != ThreadState::Waiting); return; } diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp index 3640d1d13..985ce448e 100644 --- a/src/core/hle/kernel/k_thread.cpp +++ b/src/core/hle/kernel/k_thread.cpp @@ -258,7 +258,13 @@ Result KThread::InitializeThread(KThread* thread, KThreadFunction func, uintptr_ } Result KThread::InitializeDummyThread(KThread* thread) { - return thread->Initialize({}, {}, {}, DummyThreadPriority, 3, {}, ThreadType::Dummy); + // Initialize the thread. + R_TRY(thread->Initialize({}, {}, {}, DummyThreadPriority, 3, {}, ThreadType::Dummy)); + + // Initialize emulation parameters. + thread->stack_parameters.disable_count = 0; + + return ResultSuccess; } Result KThread::InitializeMainThread(Core::System& system, KThread* thread, s32 virt_core) { |