mirror of
https://github.com/citra-emu/citra.git
synced 2024-12-18 12:50:11 +00:00
thread: exposed ResumeThreadFromWait function for use in other kernel modules
This commit is contained in:
parent
75c6d2a8fa
commit
bed4e920fa
@ -200,8 +200,15 @@ Thread* __NextThread() {
|
||||
return Kernel::g_object_pool.GetFast<Thread>(next);
|
||||
}
|
||||
|
||||
/// Puts a thread in the wait state for the given type/reason
|
||||
void __WaitCurThread(WaitType wait_type, const char* reason) {
|
||||
Thread* t = __GetCurrentThread();
|
||||
t->wait_type = wait_type;
|
||||
__ChangeThreadState(t, ThreadStatus(THREADSTATUS_WAIT | (t->status & THREADSTATUS_SUSPEND)));
|
||||
}
|
||||
|
||||
/// Resumes a thread from waiting by marking it as "ready"
|
||||
void __ResumeThreadFromWait(Handle handle) {
|
||||
void ResumeThreadFromWait(Handle handle) {
|
||||
u32 error;
|
||||
Thread* t = Kernel::g_object_pool.Get<Thread>(handle, error);
|
||||
if (t) {
|
||||
@ -212,13 +219,6 @@ void __ResumeThreadFromWait(Handle handle) {
|
||||
}
|
||||
}
|
||||
|
||||
/// Puts a thread in the wait state for the given type/reason
|
||||
void __WaitCurThread(WaitType wait_type, const char* reason) {
|
||||
Thread* t = __GetCurrentThread();
|
||||
t->wait_type = wait_type;
|
||||
__ChangeThreadState(t, ThreadStatus(THREADSTATUS_WAIT | (t->status & THREADSTATUS_SUSPEND)));
|
||||
}
|
||||
|
||||
/// Creates a new thread
|
||||
Thread* CreateThread(Handle& handle, const char* name, u32 entry_point, s32 priority,
|
||||
s32 processor_id, u32 stack_top, int stack_size) {
|
||||
|
@ -31,6 +31,9 @@ Handle SetupMainThread(s32 priority, int stack_size=Kernel::DEFAULT_STACK_SIZE);
|
||||
/// Reschedules to the next available thread (call after current thread is suspended)
|
||||
void Reschedule(const char* reason);
|
||||
|
||||
/// Resumes a thread from waiting by marking it as "ready"
|
||||
void ResumeThreadFromWait(Handle handle);
|
||||
|
||||
/// Gets the current thread
|
||||
Handle GetCurrentThread();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user