mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	Merge pull request #1762 from bunnei/global
hle: Get rid of direct global access to g_reschedule
This commit is contained in:
		| @@ -51,7 +51,7 @@ void RunLoop(int tight_loop) { | ||||
|     } | ||||
|  | ||||
|     HW::Update(); | ||||
|     if (HLE::g_reschedule) { | ||||
|     if (HLE::IsReschedulePending()) { | ||||
|         Kernel::Reschedule(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -12,9 +12,13 @@ | ||||
|  | ||||
| //////////////////////////////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| namespace HLE { | ||||
| namespace { | ||||
|  | ||||
| bool g_reschedule; ///< If true, immediately reschedules the CPU to a new thread | ||||
| bool reschedule; ///< If true, immediately reschedules the CPU to a new thread | ||||
|  | ||||
| } | ||||
|  | ||||
| namespace HLE { | ||||
|  | ||||
| void Reschedule(const char *reason) { | ||||
|     DEBUG_ASSERT_MSG(reason != nullptr && strlen(reason) < 256, "Reschedule: Invalid or too long reason."); | ||||
| @@ -27,13 +31,21 @@ void Reschedule(const char *reason) { | ||||
|  | ||||
|     Core::g_app_core->PrepareReschedule(); | ||||
|  | ||||
|     g_reschedule = true; | ||||
|     reschedule = true; | ||||
| } | ||||
|  | ||||
| bool IsReschedulePending() { | ||||
|     return reschedule; | ||||
| } | ||||
|  | ||||
| void DoneRescheduling() { | ||||
|     reschedule = false; | ||||
| } | ||||
|  | ||||
| void Init() { | ||||
|     Service::Init(); | ||||
|  | ||||
|     g_reschedule = false; | ||||
|     reschedule = false; | ||||
|  | ||||
|     LOG_DEBUG(Kernel, "initialized OK"); | ||||
| } | ||||
|   | ||||
| @@ -13,9 +13,9 @@ const Handle INVALID_HANDLE = 0; | ||||
|  | ||||
| namespace HLE { | ||||
|  | ||||
| extern bool g_reschedule;   ///< If true, immediately reschedules the CPU to a new thread | ||||
|  | ||||
| void Reschedule(const char *reason); | ||||
| bool IsReschedulePending(); | ||||
| void DoneRescheduling(); | ||||
|  | ||||
| void Init(); | ||||
| void Shutdown(); | ||||
|   | ||||
| @@ -483,7 +483,8 @@ void Reschedule() { | ||||
|  | ||||
|     Thread* cur = GetCurrentThread(); | ||||
|     Thread* next = PopNextReadyThread(); | ||||
|     HLE::g_reschedule = false; | ||||
|  | ||||
|     HLE::DoneRescheduling(); | ||||
|  | ||||
|     // Don't bother switching to the same thread | ||||
|     if (next == cur) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei