Wait Channel
Manages a list of sleeping threads
Used by Mutex, Semaphores, Condition Variables
lock
void WaitChannel_Lock(WaitChannel *wc);
- Lock waitchannel for sleep and wake operations
sleep
void WaitChannel_Sleep(WaitChanne; *wc);
- Puts calling thread to sleep
- Causes Context Switch
wake
void WaitChannel_Wake(WaitChannel *wc);
- Unblocks one thread sleeping on the wait channel
wakeall
void WaitChannel_WakeAll(WaitChannel *wc);
- Unblocks all threads sleeping on the wait channel