|
|
|
@ -115,7 +115,7 @@ ResultCode KAddressArbiter::Signal(VAddr addr, s32 count) {
|
|
|
|
|
{
|
|
|
|
|
KScopedSchedulerLock sl(kernel);
|
|
|
|
|
|
|
|
|
|
auto it = thread_tree.nfind_light({addr, -1});
|
|
|
|
|
auto it = thread_tree.nfind_key({addr, -1});
|
|
|
|
|
while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&
|
|
|
|
|
(it->GetAddressArbiterKey() == addr)) {
|
|
|
|
|
// End the thread's wait.
|
|
|
|
@ -148,7 +148,7 @@ ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32
|
|
|
|
|
return ResultInvalidState;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto it = thread_tree.nfind_light({addr, -1});
|
|
|
|
|
auto it = thread_tree.nfind_key({addr, -1});
|
|
|
|
|
while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&
|
|
|
|
|
(it->GetAddressArbiterKey() == addr)) {
|
|
|
|
|
// End the thread's wait.
|
|
|
|
@ -171,7 +171,7 @@ ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32
|
|
|
|
|
{
|
|
|
|
|
[[maybe_unused]] const KScopedSchedulerLock sl(kernel);
|
|
|
|
|
|
|
|
|
|
auto it = thread_tree.nfind_light({addr, -1});
|
|
|
|
|
auto it = thread_tree.nfind_key({addr, -1});
|
|
|
|
|
// Determine the updated value.
|
|
|
|
|
s32 new_value{};
|
|
|
|
|
if (count <= 0) {
|
|
|
|
|