mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	Kernel: Corrections to ModifyByWaitingCountAndSignalToAddressIfEqual
This commit is contained in:
		 Fernando Sahmkow
					Fernando Sahmkow
				
			
				
					committed by
					
						 FernandoS27
						FernandoS27
					
				
			
			
				
	
			
			
			 FernandoS27
						FernandoS27
					
				
			
						parent
						
							44e09e5f21
						
					
				
				
					commit
					7176857177
				
			| @@ -91,12 +91,20 @@ ResultCode AddressArbiter::ModifyByWaitingCountAndSignalToAddressIfEqual(VAddr a | ||||
|  | ||||
|     // Determine the modified value depending on the waiting count. | ||||
|     s32 updated_value; | ||||
|     if (waiting_threads.empty()) { | ||||
|         updated_value = value + 1; | ||||
|     } else if (num_to_wake <= 0 || waiting_threads.size() <= static_cast<u32>(num_to_wake)) { | ||||
|         updated_value = value - 1; | ||||
|     if (num_to_wake <= 0) { | ||||
|         if (waiting_threads.empty()) { | ||||
|             updated_value = value + 1; | ||||
|         } else { | ||||
|             updated_value = value - 1; | ||||
|         } | ||||
|     } else { | ||||
|         updated_value = value; | ||||
|         if (waiting_threads.empty()) { | ||||
|             updated_value = value + 1; | ||||
|         } else if (waiting_threads.size() <= static_cast<u32>(num_to_wake)) { | ||||
|             updated_value = value - 1; | ||||
|         } else { | ||||
|             updated_value = value; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     if (static_cast<s32>(Memory::Read32(address)) != value) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user