From eed4f2e2293cb39352811b7af28b57e58875fb0c Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Sat, 30 Dec 2017 12:05:10 -0500
Subject: [PATCH] thread: Main thread should be ready by default, all others
 dormant.

---
 src/core/hle/kernel/thread.cpp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index 1645437b6..32fa5e314 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -457,9 +457,6 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point,
     // to initialize the context
     ResetThreadContext(thread->context, stack_top, entry_point, arg);
 
-    ready_queue.push_back(thread->current_priority, thread.get());
-    thread->status = THREADSTATUS_READY;
-
     return MakeResult<SharedPtr<Thread>>(std::move(thread));
 }
 
@@ -506,7 +503,9 @@ SharedPtr<Thread> SetupMainThread(VAddr entry_point, u32 priority, SharedPtr<Pro
     thread->context.fpscr =
         FPSCR_DEFAULT_NAN | FPSCR_FLUSH_TO_ZERO | FPSCR_ROUND_TOZERO | FPSCR_IXC; // 0x03C00010
 
-    // Note: The newly created thread will be run when the scheduler fires.
+    // Threads by default are dormant, wake up the main thread so it runs when the scheduler fires
+    thread->ResumeFromWait();
+
     return thread;
 }