core: Make running_core always match kernel current_cpu (#7159)
This commit is contained in:
		@@ -158,7 +158,8 @@ System::ResultStatus System::RunLoop(bool tight_loop) {
 | 
			
		||||
    for (auto& cpu_core : cpu_cores) {
 | 
			
		||||
        if (cpu_core->GetTimer().GetTicks() < global_ticks) {
 | 
			
		||||
            s64 delay = global_ticks - cpu_core->GetTimer().GetTicks();
 | 
			
		||||
            kernel->SetRunningCPU(cpu_core.get());
 | 
			
		||||
            running_core = cpu_core.get();
 | 
			
		||||
            kernel->SetRunningCPU(running_core);
 | 
			
		||||
            cpu_core->GetTimer().Advance();
 | 
			
		||||
            cpu_core->PrepareReschedule();
 | 
			
		||||
            kernel->GetThreadManager(cpu_core->GetID()).Reschedule();
 | 
			
		||||
@@ -199,7 +200,8 @@ System::ResultStatus System::RunLoop(bool tight_loop) {
 | 
			
		||||
        // TODO: Make special check for idle since we can easily revert the time of idle cores
 | 
			
		||||
        s64 max_slice = Timing::MAX_SLICE_LENGTH;
 | 
			
		||||
        for (const auto& cpu_core : cpu_cores) {
 | 
			
		||||
            kernel->SetRunningCPU(cpu_core.get());
 | 
			
		||||
            running_core = cpu_core.get();
 | 
			
		||||
            kernel->SetRunningCPU(running_core);
 | 
			
		||||
            cpu_core->GetTimer().Advance();
 | 
			
		||||
            cpu_core->PrepareReschedule();
 | 
			
		||||
            kernel->GetThreadManager(cpu_core->GetID()).Reschedule();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user