diff options
author | bunnei <bunneidev@gmail.com> | 2021-08-07 08:05:01 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-08-07 21:18:47 +0200 |
commit | f2b0d289833be94401edb4bb3b5b891fcda713d4 (patch) | |
tree | 5fe74ac28d1f0bd2d1ef96526d6712cf28833c1e /src/core/hle/kernel/k_handle_table.cpp | |
parent | core: hle: kernel: k_thread: Add KScopedDisableDispatch. (diff) | |
download | yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar.gz yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar.bz2 yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar.lz yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar.xz yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.tar.zst yuzu-f2b0d289833be94401edb4bb3b5b891fcda713d4.zip |
Diffstat (limited to 'src/core/hle/kernel/k_handle_table.cpp')
-rw-r--r-- | src/core/hle/kernel/k_handle_table.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/hle/kernel/k_handle_table.cpp b/src/core/hle/kernel/k_handle_table.cpp index 6a420d5b0..d720c2dda 100644 --- a/src/core/hle/kernel/k_handle_table.cpp +++ b/src/core/hle/kernel/k_handle_table.cpp @@ -13,6 +13,7 @@ ResultCode KHandleTable::Finalize() { // Get the table and clear our record of it. u16 saved_table_size = 0; { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); std::swap(m_table_size, saved_table_size); @@ -43,6 +44,7 @@ bool KHandleTable::Remove(Handle handle) { // Find the object and free the entry. KAutoObject* obj = nullptr; { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); if (this->IsValidHandle(handle)) { @@ -61,6 +63,7 @@ bool KHandleTable::Remove(Handle handle) { } ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj, u16 type) { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); // Never exceed our capacity. @@ -83,6 +86,7 @@ ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj, u16 type) { } ResultCode KHandleTable::Reserve(Handle* out_handle) { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); // Never exceed our capacity. @@ -93,6 +97,7 @@ ResultCode KHandleTable::Reserve(Handle* out_handle) { } void KHandleTable::Unreserve(Handle handle) { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); // Unpack the handle. @@ -111,6 +116,7 @@ void KHandleTable::Unreserve(Handle handle) { } void KHandleTable::Register(Handle handle, KAutoObject* obj, u16 type) { + KScopedDisableDispatch dd(kernel); KScopedSpinLock lk(m_lock); // Unpack the handle. |