Merge pull request #2893 from Subv/not_schedule_main_thread

Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
This commit is contained in:
bunnei 2017-08-22 17:45:47 -04:00 committed by GitHub
commit 2bbff9fa96

View File

@ -478,8 +478,6 @@ void Thread::BoostPriority(s32 priority) {
} }
SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) { SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) {
DEBUG_ASSERT(!GetCurrentThread());
// Initialize new "main" thread // Initialize new "main" thread
auto thread_res = Thread::Create("main", entry_point, priority, 0, THREADPROCESSORID_0, auto thread_res = Thread::Create("main", entry_point, priority, 0, THREADPROCESSORID_0,
Memory::HEAP_VADDR_END); Memory::HEAP_VADDR_END);
@ -489,9 +487,7 @@ SharedPtr<Thread> SetupMainThread(u32 entry_point, s32 priority) {
thread->context.fpscr = thread->context.fpscr =
FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010 FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010
// Run new "main" thread // Note: The newly created thread will be run when the scheduler fires.
SwitchContext(thread.get());
return thread; return thread;
} }