wait
Function parameters
Parameters
- sem:*Semaphore
Functions in this namespace
Functions
Source
Implementation
pub fn wait(sem: *Semaphore) void {
sem.mutex.lock();
defer sem.mutex.unlock();
while (sem.permits == 0)
sem.cond.wait(&sem.mutex);
sem.permits -= 1;
if (sem.permits > 0)
sem.cond.signal();
}