diff options
author | bunnei <ericbunnie@gmail.com> | 2014-06-02 03:42:50 +0200 |
---|---|---|
committer | bunnei <ericbunnie@gmail.com> | 2014-06-02 03:42:50 +0200 |
commit | 10447d1f4831b495d7bef7711681ddd548f847a6 (patch) | |
tree | 7315bc1d8addcab21bd3e532f806811682c4eb01 /src/core/hle/kernel | |
parent | arm: added option to prepare CPU core (while mid-instruction) for thread reschedule (diff) | |
download | yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.gz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.bz2 yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.lz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.xz yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.tar.zst yuzu-10447d1f4831b495d7bef7711681ddd548f847a6.zip |
Diffstat (limited to 'src/core/hle/kernel')
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 3 | ||||
-rw-r--r-- | src/core/hle/kernel/kernel.h | 1 | ||||
-rw-r--r-- | src/core/hle/kernel/thread.cpp | 6 |
3 files changed, 6 insertions, 4 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index de80de893..c0c0fa177 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -14,6 +14,7 @@ namespace Kernel { +Handle g_main_thread = 0; ObjectPool g_object_pool; ObjectPool::ObjectPool() { @@ -150,7 +151,7 @@ bool LoadExec(u32 entry_point) { Core::g_app_core->SetPC(entry_point); // 0x30 is the typical main thread priority I've seen used so far - Handle thread = Kernel::SetupMainThread(0x30); + g_main_thread = Kernel::SetupMainThread(THREADPRIO_DEFAULT); return true; } diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index 620cd2d73..2192df16f 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -163,6 +163,7 @@ private: }; extern ObjectPool g_object_pool; +extern Handle g_main_thread; /** * Loads executable stored at specified address diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index d1e13c949..f2094f7a7 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -285,11 +285,11 @@ Handle CreateThread(const char* name, u32 entry_point, s32 priority, u32 arg, s3 HLE::EatCycles(32000); + CallThread(t); + // This won't schedule to the new thread, but it may to one woken from eating cycles. // Technically, this should not eat all at once, and reschedule in the middle, but that's hard. - HLE::ReSchedule("thread created"); - - CallThread(t); + //HLE::Reschedule("thread created"); return handle; } |