mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	HLE/Timers: Reset OneShot timers when they are acquired instead of when they're triggered.
Closes #1139
This commit is contained in:
		@@ -42,6 +42,9 @@ bool Timer::ShouldWait() {
 | 
			
		||||
 | 
			
		||||
void Timer::Acquire() {
 | 
			
		||||
    ASSERT_MSG( !ShouldWait(), "object unavailable!");
 | 
			
		||||
 | 
			
		||||
    if (reset_type == RESETTYPE_ONESHOT)
 | 
			
		||||
        signaled = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Timer::Set(s64 initial, s64 interval) {
 | 
			
		||||
@@ -84,9 +87,6 @@ static void TimerCallback(u64 timer_handle, int cycles_late) {
 | 
			
		||||
    // Resume all waiting threads
 | 
			
		||||
    timer->WakeupAllWaitingThreads();
 | 
			
		||||
 | 
			
		||||
    if (timer->reset_type == RESETTYPE_ONESHOT)
 | 
			
		||||
        timer->signaled = false;
 | 
			
		||||
 | 
			
		||||
    if (timer->interval_delay != 0) {
 | 
			
		||||
        // Reschedule the timer with the interval delay
 | 
			
		||||
        u64 interval_microseconds = timer->interval_delay / 1000;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user