diff options
author | bunnei <bunneidev@gmail.com> | 2015-01-17 22:23:49 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2015-01-21 19:10:24 -0500 |
commit | aa01c57ae9d73e41b65d37860ca6fbb91caba33a (patch) | |
tree | 904936860b1e8319ec5edc3a1e0e6c2c12f01d9f /src/core/hle/kernel/semaphore.cpp | |
parent | 627e96fc15f99eea0f1c5ccdb46d85cadb3efd69 (diff) |
Kernel: Separate WaitSynchronization into Wait and Acquire methods.
Diffstat (limited to 'src/core/hle/kernel/semaphore.cpp')
-rw-r--r-- | src/core/hle/kernel/semaphore.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/core/hle/kernel/semaphore.cpp b/src/core/hle/kernel/semaphore.cpp index 28892844..6464b258 100644 --- a/src/core/hle/kernel/semaphore.cpp +++ b/src/core/hle/kernel/semaphore.cpp @@ -32,18 +32,27 @@ public: return available_count > 0; } - ResultVal<bool> WaitSynchronization(unsigned index) override { + ResultVal<bool> Wait(unsigned index) override { bool wait = !IsAvailable(); if (wait) { Kernel::WaitCurrentThread_WaitSynchronization(WAITTYPE_SEMA, this, index); AddWaitingThread(GetCurrentThread()); - } else { - --available_count; } return MakeResult<bool>(wait); } + + ResultVal<bool> Acquire() override { + bool res = false; + + if (IsAvailable()) { + --available_count; + res = true; + } + + return MakeResult<bool>(res); + } }; //////////////////////////////////////////////////////////////////////////////////////////////////// |