diff options
| author | bunnei <bunneidev@gmail.com> | 2022-01-21 17:10:11 -0800 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2022-01-21 17:12:06 -0800 |
| commit | 615fb40416b9ee10abf40a036b31d1540886a9b8 (patch) | |
| tree | 8220ac1a9435933b995c4eab0e2e334daad3af11 /src/core/hle/kernel/k_scheduler.cpp | |
| parent | f6815086a163029771cad51713601df93738d393 (diff) | |
hle: kernel: KThread: Ensure host (dummy) threads block on locking.
- But do not enter the priority queue, as otherwise they will be scheduled.
- Allows dummy threads to use guest synchronization primitives.
Diffstat (limited to 'src/core/hle/kernel/k_scheduler.cpp')
| -rw-r--r-- | src/core/hle/kernel/k_scheduler.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_scheduler.cpp b/src/core/hle/kernel/k_scheduler.cpp index 1b2a01869..b32d4f285 100644 --- a/src/core/hle/kernel/k_scheduler.cpp +++ b/src/core/hle/kernel/k_scheduler.cpp @@ -406,6 +406,9 @@ void KScheduler::EnableScheduling(KernelCore& kernel, u64 cores_needing_scheduli } else { RescheduleCores(kernel, cores_needing_scheduling); } + + // Special case to ensure dummy threads that are waiting block. + current_thread->IfDummyThreadTryWait(); } u64 KScheduler::UpdateHighestPriorityThreads(KernelCore& kernel) { |
