summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel
diff options
context:
space:
mode:
authorGravatar bunnei2015-04-06 21:58:05 -0400
committerGravatar bunnei2015-04-09 19:06:42 -0400
commitc077bcefa9e72078ab9df798f41376c0b91abd15 (patch)
tree9afdf79102644efc26bbaec762aaee72ebcdfb1f /src/core/hle/kernel
parentKernel: Implemented priority inheritance for mutexes. (diff)
downloadyuzu-c077bcefa9e72078ab9df798f41376c0b91abd15.tar.gz
yuzu-c077bcefa9e72078ab9df798f41376c0b91abd15.tar.xz
yuzu-c077bcefa9e72078ab9df798f41376c0b91abd15.zip
SVC: Update various SVCs to cause a reschedule.
- CreateMutex/ReleaseMutex/ReleaseSemaphore/SetTimer/CancelTimer/ArbitrateAddress
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r--src/core/hle/kernel/address_arbiter.cpp4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/core/hle/kernel/address_arbiter.cpp b/src/core/hle/kernel/address_arbiter.cpp
index 42f8ce2d9..19135266c 100644
--- a/src/core/hle/kernel/address_arbiter.cpp
+++ b/src/core/hle/kernel/address_arbiter.cpp
@@ -46,14 +46,12 @@ ResultCode AddressArbiter::ArbitrateAddress(ArbitrationType type, VAddr address,
46 case ArbitrationType::WaitIfLessThan: 46 case ArbitrationType::WaitIfLessThan:
47 if ((s32)Memory::Read32(address) <= value) { 47 if ((s32)Memory::Read32(address) <= value) {
48 Kernel::WaitCurrentThread_ArbitrateAddress(address); 48 Kernel::WaitCurrentThread_ArbitrateAddress(address);
49 HLE::Reschedule(__func__);
50 } 49 }
51 break; 50 break;
52 case ArbitrationType::WaitIfLessThanWithTimeout: 51 case ArbitrationType::WaitIfLessThanWithTimeout:
53 if ((s32)Memory::Read32(address) <= value) { 52 if ((s32)Memory::Read32(address) <= value) {
54 Kernel::WaitCurrentThread_ArbitrateAddress(address); 53 Kernel::WaitCurrentThread_ArbitrateAddress(address);
55 GetCurrentThread()->WakeAfterDelay(nanoseconds); 54 GetCurrentThread()->WakeAfterDelay(nanoseconds);
56 HLE::Reschedule(__func__);
57 } 55 }
58 break; 56 break;
59 case ArbitrationType::DecrementAndWaitIfLessThan: 57 case ArbitrationType::DecrementAndWaitIfLessThan:
@@ -62,7 +60,6 @@ ResultCode AddressArbiter::ArbitrateAddress(ArbitrationType type, VAddr address,
62 Memory::Write32(address, memory_value); 60 Memory::Write32(address, memory_value);
63 if (memory_value <= value) { 61 if (memory_value <= value) {
64 Kernel::WaitCurrentThread_ArbitrateAddress(address); 62 Kernel::WaitCurrentThread_ArbitrateAddress(address);
65 HLE::Reschedule(__func__);
66 } 63 }
67 break; 64 break;
68 } 65 }
@@ -73,7 +70,6 @@ ResultCode AddressArbiter::ArbitrateAddress(ArbitrationType type, VAddr address,
73 if (memory_value <= value) { 70 if (memory_value <= value) {
74 Kernel::WaitCurrentThread_ArbitrateAddress(address); 71 Kernel::WaitCurrentThread_ArbitrateAddress(address);
75 GetCurrentThread()->WakeAfterDelay(nanoseconds); 72 GetCurrentThread()->WakeAfterDelay(nanoseconds);
76 HLE::Reschedule(__func__);
77 } 73 }
78 break; 74 break;
79 } 75 }