summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/mutex.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2015-01-10 15:19:21 -0500
committerGravatar bunnei2015-01-10 15:19:21 -0500
commit5a4b361f6065d33fd9efb73b3654910f74d5e3cd (patch)
treecb6506c96f7880ef38f783221d4dd5b34978e3ef /src/core/hle/kernel/mutex.cpp
parentFix Windows build (diff)
parentKernel: Start using boost::intrusive_ptr for lifetime management (diff)
downloadyuzu-5a4b361f6065d33fd9efb73b3654910f74d5e3cd.tar.gz
yuzu-5a4b361f6065d33fd9efb73b3654910f74d5e3cd.tar.xz
yuzu-5a4b361f6065d33fd9efb73b3654910f74d5e3cd.zip
Merge pull request #455 from yuriks/handle-reform3
Kernel Lifetime Reform Pt. 3
Diffstat (limited to 'src/core/hle/kernel/mutex.cpp')
-rw-r--r--src/core/hle/kernel/mutex.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index 7d008f6cc..853a5dd74 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/src/core/hle/kernel/mutex.cpp
@@ -48,7 +48,7 @@ void MutexAcquireLock(Mutex* mutex, Handle thread = GetCurrentThread()->GetHandl
48bool ReleaseMutexForThread(Mutex* mutex, Handle thread_handle) { 48bool ReleaseMutexForThread(Mutex* mutex, Handle thread_handle) {
49 MutexAcquireLock(mutex, thread_handle); 49 MutexAcquireLock(mutex, thread_handle);
50 50
51 Thread* thread = Kernel::g_handle_table.Get<Thread>(thread_handle); 51 Thread* thread = Kernel::g_handle_table.Get<Thread>(thread_handle).get();
52 if (thread == nullptr) { 52 if (thread == nullptr) {
53 LOG_ERROR(Kernel, "Called with invalid handle: %08X", thread_handle); 53 LOG_ERROR(Kernel, "Called with invalid handle: %08X", thread_handle);
54 return false; 54 return false;
@@ -94,7 +94,7 @@ void ReleaseThreadMutexes(Handle thread) {
94 94
95 // Release every mutex that the thread holds, and resume execution on the waiting threads 95 // Release every mutex that the thread holds, and resume execution on the waiting threads
96 for (MutexMap::iterator iter = locked.first; iter != locked.second; ++iter) { 96 for (MutexMap::iterator iter = locked.first; iter != locked.second; ++iter) {
97 Mutex* mutex = g_handle_table.Get<Mutex>(iter->second); 97 Mutex* mutex = g_handle_table.Get<Mutex>(iter->second).get();
98 ResumeWaitingThread(mutex); 98 ResumeWaitingThread(mutex);
99 } 99 }
100 100
@@ -122,7 +122,7 @@ bool ReleaseMutex(Mutex* mutex) {
122 * @param handle Handle to mutex to release 122 * @param handle Handle to mutex to release
123 */ 123 */
124ResultCode ReleaseMutex(Handle handle) { 124ResultCode ReleaseMutex(Handle handle) {
125 Mutex* mutex = Kernel::g_handle_table.Get<Mutex>(handle); 125 Mutex* mutex = Kernel::g_handle_table.Get<Mutex>(handle).get();
126 if (mutex == nullptr) return InvalidHandle(ErrorModule::Kernel); 126 if (mutex == nullptr) return InvalidHandle(ErrorModule::Kernel);
127 127
128 if (!ReleaseMutex(mutex)) { 128 if (!ReleaseMutex(mutex)) {