summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/thread.h
diff options
context:
space:
mode:
authorGravatar Subv2015-01-07 10:10:58 -0500
committerGravatar Subv2015-01-07 20:31:31 -0500
commit60a373a7862a85b8b030ea1b18d01d364ddf8a8b (patch)
treee9e6288406b16f2a8dd10236c96567a895af3410 /src/core/hle/kernel/thread.h
parentMerge pull request #404 from bunnei/more-frame-synch-fixes (diff)
downloadyuzu-60a373a7862a85b8b030ea1b18d01d364ddf8a8b.tar.gz
yuzu-60a373a7862a85b8b030ea1b18d01d364ddf8a8b.tar.xz
yuzu-60a373a7862a85b8b030ea1b18d01d364ddf8a8b.zip
Threads: Use a dummy idle thread when no other are ready.
This thread will not actually execute instructions, it will only advance the timing/events and try to yield immediately to the next ready thread, if there aren't any ready threads then it will be rescheduled and start its job again.
Diffstat (limited to 'src/core/hle/kernel/thread.h')
-rw-r--r--src/core/hle/kernel/thread.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index 0e1397cd9..dfe92d162 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -104,6 +104,17 @@ ResultVal<u32> GetThreadPriority(const Handle handle);
104/// Set the priority of the thread specified by handle 104/// Set the priority of the thread specified by handle
105ResultCode SetThreadPriority(Handle handle, s32 priority); 105ResultCode SetThreadPriority(Handle handle, s32 priority);
106 106
107/**
108 * Sets up the idle thread, this is a thread that is intended to never execute instructions,
109 * only to advance the timing. It is scheduled when there are no other ready threads in the thread queue
110 * and will try to yield on every call.
111 * @returns The handle of the idle thread
112 */
113Handle SetupIdleThread();
114
115/// Whether the current thread is an idle thread
116bool IsIdleThread(Handle thread);
117
107/// Initialize threading 118/// Initialize threading
108void ThreadingInit(); 119void ThreadingInit();
109 120