mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-30 15:39:02 -05:00 
			
		
		
		
	Kernel/Arbiter: Fix bug in WaitIfLessThan
This commit is contained in:
		| @@ -115,7 +115,7 @@ ResultCode ModifyByWaitingCountAndSignalToAddressIfEqual(VAddr address, s32 valu | ||||
|     s32 updated_value; | ||||
|     if (waiting_threads.size() == 0) { | ||||
|         updated_value = value - 1; | ||||
|     } else if (num_to_wake <= 0 || waiting_threads.size() <= num_to_wake) { | ||||
|     } else if (num_to_wake <= 0 || waiting_threads.size() <= static_cast<u32>(num_to_wake)) { | ||||
|         updated_value = value + 1; | ||||
|     } else { | ||||
|         updated_value = value; | ||||
| @@ -140,7 +140,9 @@ ResultCode WaitForAddressIfLessThan(VAddr address, s32 value, s64 timeout, bool | ||||
|  | ||||
|     s32 cur_value = static_cast<s32>(Memory::Read32(address)); | ||||
|     if (cur_value < value) { | ||||
|         Memory::Write32(address, static_cast<u32>(cur_value - 1)); | ||||
|         if (should_decrement) { | ||||
|             Memory::Write32(address, static_cast<u32>(cur_value - 1)); | ||||
|         } | ||||
|     } else { | ||||
|         return ERR_INVALID_STATE; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Michael Scire
					Michael Scire