Fix WaitChannel_Wake to do nothing if there's no threads to wake up.

This commit is contained in:
Ali Mashtizadeh 2023-09-02 18:41:20 -04:00
parent d3349d9eaa
commit 72341c3c8b

View File

@ -92,9 +92,11 @@ WaitChannel_Wake(WaitChannel *wchan)
Spinlock_Lock(&wchan->lock);
thr = TAILQ_FIRST(&wchan->chanQueue);
TAILQ_REMOVE(&wchan->chanQueue, thr, chanQueue);
Sched_SetRunnable(thr);
Thread_Release(thr);
if (thr != NULL) {
TAILQ_REMOVE(&wchan->chanQueue, thr, chanQueue);
Sched_SetRunnable(thr);
Thread_Release(thr);
}
Spinlock_Unlock(&wchan->lock);
}