mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 16:09:03 -05:00 
			
		
		
		
	Kernel: Address Feedback 2
This commit is contained in:
		 Fernando Sahmkow
					Fernando Sahmkow
				
			
				
					committed by
					
						 FernandoS27
						FernandoS27
					
				
			
			
				
	
			
			
			 FernandoS27
						FernandoS27
					
				
			
						parent
						
							a3524879be
						
					
				
				
					commit
					e28c7f5217
				
			| @@ -410,7 +410,7 @@ ResultCode Thread::SetCoreAndAffinityMask(s32 new_core, u64 new_affinity_mask) { | ||||
|     }; | ||||
|  | ||||
|     const bool use_override = affinity_override_count != 0; | ||||
|     if (new_core == static_cast<s32>(CoreFlags::DontChangeIdealCore)) { | ||||
|     if (new_core == THREADDONTCHANGE_IDEAL) { | ||||
|         new_core = use_override ? ideal_core_override : ideal_core; | ||||
|         if ((new_affinity_mask & (1ULL << new_core)) == 0) { | ||||
|             return ERR_INVALID_COMBINATION; | ||||
| @@ -452,7 +452,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) { | ||||
|  | ||||
|         for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) { | ||||
|             if (core != processor_id && ((affinity_mask >> core) & 1) != 0) { | ||||
|                 scheduler.Unsuggest(current_priority, core, this); | ||||
|                 scheduler.Unsuggest(current_priority, static_cast<u32>(core), this); | ||||
|             } | ||||
|         } | ||||
|     } else if (GetSchedulingStatus() == ThreadSchedStatus::Runnable) { | ||||
| @@ -463,7 +463,7 @@ void Thread::AdjustSchedulingOnStatus(u32 old_flags) { | ||||
|  | ||||
|         for (s32 core = 0; core < GlobalScheduler::NUM_CPU_CORES; core++) { | ||||
|             if (core != processor_id && ((affinity_mask >> core) & 1) != 0) { | ||||
|                 scheduler.Suggest(current_priority, core, this); | ||||
|                 scheduler.Suggest(current_priority, static_cast<u32>(core), this); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -35,6 +35,9 @@ enum ThreadProcessorId : s32 { | ||||
|     /// Run thread on the ideal core specified by the process. | ||||
|     THREADPROCESSORID_IDEAL = -2, | ||||
|  | ||||
|     /// when setting Core and Affiny, keeps the ideal core intact | ||||
|     THREADDONTCHANGE_IDEAL = -3, | ||||
|  | ||||
|     /// Indicates that the preferred processor ID shouldn't be updated in | ||||
|     /// a core mask setting operation. | ||||
|     THREADPROCESSORID_DONT_UPDATE = -3, | ||||
| @@ -95,12 +98,6 @@ enum class ThreadSchedMasks : u32 { | ||||
|     ForcePauseMask = 0x0070, | ||||
| }; | ||||
|  | ||||
| enum class CoreFlags : s32 { | ||||
|     IgnoreIdealCore = -1, | ||||
|     ProcessIdealCore = -2, | ||||
|     DontChangeIdealCore = -3, | ||||
| }; | ||||
|  | ||||
| class Thread final : public WaitObject { | ||||
| public: | ||||
|     using MutexWaitingThreads = std::vector<SharedPtr<Thread>>; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user