diff options
| author | bunnei <bunneidev@gmail.com> | 2021-01-21 13:00:16 -0800 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2021-01-28 21:42:26 -0800 |
| commit | 6e953f7f0294d945ba9d6f08350d5dccb0d76075 (patch) | |
| tree | 92a498827c4de7dd372731eff83c66aa3f57f060 /src/core/hle/kernel/k_light_lock.cpp | |
| parent | 37f74d87417c8cb491fee1681cc05fb7baa5e516 (diff) | |
hle: kernel: Allocate a dummy KThread for each host thread, and use it for scheduling.
Diffstat (limited to 'src/core/hle/kernel/k_light_lock.cpp')
| -rw-r--r-- | src/core/hle/kernel/k_light_lock.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/core/hle/kernel/k_light_lock.cpp b/src/core/hle/kernel/k_light_lock.cpp index 1d54ba5df..08fa65fd5 100644 --- a/src/core/hle/kernel/k_light_lock.cpp +++ b/src/core/hle/kernel/k_light_lock.cpp @@ -9,12 +9,6 @@ namespace Kernel { -static KThread* ToThread(uintptr_t thread_) { - ASSERT((thread_ & EmuThreadHandleReserved) == 0); - ASSERT((thread_ & 1) == 0); - return reinterpret_cast<KThread*>(thread_); -} - void KLightLock::Lock() { const uintptr_t cur_thread = reinterpret_cast<uintptr_t>(GetCurrentThreadPointer(kernel)); const uintptr_t cur_thread_tag = (cur_thread | 1); @@ -48,7 +42,7 @@ void KLightLock::Unlock() { } void KLightLock::LockSlowPath(uintptr_t _owner, uintptr_t _cur_thread) { - KThread* cur_thread = ToThread(_cur_thread); + KThread* cur_thread = reinterpret_cast<KThread*>(_cur_thread); // Pend the current thread waiting on the owner thread. { @@ -60,7 +54,7 @@ void KLightLock::LockSlowPath(uintptr_t _owner, uintptr_t _cur_thread) { } // Add the current thread as a waiter on the owner. - KThread* owner_thread = ToThread(_owner & ~1ul); + KThread* owner_thread = reinterpret_cast<KThread*>(_owner & ~1ul); cur_thread->SetAddressKey(reinterpret_cast<uintptr_t>(std::addressof(tag))); owner_thread->AddWaiter(cur_thread); @@ -88,7 +82,7 @@ void KLightLock::LockSlowPath(uintptr_t _owner, uintptr_t _cur_thread) { } void KLightLock::UnlockSlowPath(uintptr_t _cur_thread) { - KThread* owner_thread = ToThread(_cur_thread); + KThread* owner_thread = reinterpret_cast<KThread*>(_cur_thread); // Unlock. { |
