Scheduler: Set last running time on thread.
This commit is contained in:
		
							parent
							
								
									9e9c287f8b
								
							
						
					
					
						commit
						391f5f360d
					
				@ -616,6 +616,7 @@ void Scheduler::SwitchContextStep2() {
 | 
			
		||||
 | 
			
		||||
        // Cancel any outstanding wakeup events for this thread
 | 
			
		||||
        new_thread->SetIsRunning(true);
 | 
			
		||||
        new_thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
 | 
			
		||||
 | 
			
		||||
        auto* const thread_owner_process = current_thread->GetOwnerProcess();
 | 
			
		||||
        if (previous_process != thread_owner_process && thread_owner_process != nullptr) {
 | 
			
		||||
@ -654,6 +655,7 @@ void Scheduler::SwitchContext() {
 | 
			
		||||
 | 
			
		||||
    // Save context for previous thread
 | 
			
		||||
    if (previous_thread) {
 | 
			
		||||
        previous_thread->last_running_ticks = system.CoreTiming().GetCPUTicks();
 | 
			
		||||
        if (!previous_thread->IsHLEThread()) {
 | 
			
		||||
            auto& cpu_core = system.ArmInterface(core_id);
 | 
			
		||||
            cpu_core.SaveContext(previous_thread->GetContext32());
 | 
			
		||||
 | 
			
		||||
@ -295,10 +295,6 @@ void Thread::SetStatus(ThreadStatus new_status) {
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (status == ThreadStatus::Running) {
 | 
			
		||||
        last_running_ticks = Core::System::GetInstance().CoreTiming().GetCPUTicks();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    status = new_status;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user