Function wait [src]
Prototype
pub fn wait(sem: *Semaphore) void
Parameters
sem: *Semaphore
Source
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();
}