Kernel/Threads: Don't immediately switch to the new main thread when loading a new process.
This is necessary for loading multiple processes at the same time. The main thread will be automatically scheduled when necessary once the scheduler runs.
This commit is contained in:
parent
46d1ca768d
commit
fa228ca637
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue