Thread: Prevent waking a thread multiple times.
If a thread was woken up by something, cancel the wakeup timeout.
This commit is contained in:
parent
e213f91373
commit
b68d51ed30
1 changed files with 3 additions and 0 deletions
|
@ -263,6 +263,9 @@ void WakeThreadAfterDelay(Thread* thread, s64 nanoseconds) {
|
||||||
|
|
||||||
/// Resumes a thread from waiting by marking it as "ready"
|
/// Resumes a thread from waiting by marking it as "ready"
|
||||||
void Thread::ResumeFromWait() {
|
void Thread::ResumeFromWait() {
|
||||||
|
// Cancel any outstanding wakeup events
|
||||||
|
CoreTiming::UnscheduleEvent(ThreadWakeupEventType, GetHandle());
|
||||||
|
|
||||||
status &= ~THREADSTATUS_WAIT;
|
status &= ~THREADSTATUS_WAIT;
|
||||||
wait_object = nullptr;
|
wait_object = nullptr;
|
||||||
wait_type = WAITTYPE_NONE;
|
wait_type = WAITTYPE_NONE;
|
||||||
|
|
Loading…
Reference in a new issue