kernel/thread: Move thread exiting logic from ExitCurrentThread to svcExitThread

Puts the operation on global state in the same places as the rest of the
svc calls.
pull/8/head
Lioncash 6 years ago
parent c892cf01fa
commit 51d7f6bffc

@ -1284,10 +1284,14 @@ static ResultCode StartThread(Handle thread_handle) {
/// Called when a thread exits
static void ExitThread() {
LOG_TRACE(Kernel_SVC, "called, pc=0x{:08X}", Core::CurrentArmInterface().GetPC());
auto& system = Core::System::GetInstance();
ExitCurrentThread();
Core::System::GetInstance().PrepareReschedule();
LOG_TRACE(Kernel_SVC, "called, pc=0x{:08X}", system.CurrentArmInterface().GetPC());
auto* const current_thread = system.CurrentScheduler().GetCurrentThread();
current_thread->Stop();
system.CurrentScheduler().RemoveThread(current_thread);
system.PrepareReschedule();
}
/// Sleep the current thread

@ -463,9 +463,4 @@ private:
*/
Thread* GetCurrentThread();
/**
* Stops the current thread and removes it from the thread_list
*/
void ExitCurrentThread();
} // namespace Kernel

Loading…
Cancel
Save