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(); }