std/locks (original) (raw)

Source Edit

This module contains Nim's support for locks and condition vars.

Procs

proc acquire(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].}

Acquires the given lock.Source Edit

proc broadcast(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].}

Unblocks all threads currently blocked on the specified condition variable cond.Source Edit

proc deinitCond(cond: Cond) {.inline, ...raises: [], tags: [], forbids: [].}

Frees the resources associated with the condition variable.Source Edit

proc deinitLock(lock: Lock) {.inline, ...raises: [], tags: [], forbids: [].}

Frees the resources associated with the lock.Source Edit

proc initCond(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].}

Initializes the given condition variable.Source Edit

proc initLock(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].}

Initializes the given lock.Source Edit

proc release(lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].}

Releases the given lock.Source Edit

proc signal(cond: var Cond) {.inline, ...raises: [], tags: [], forbids: [].}

Sends a signal to the condition variable cond.Source Edit

proc tryAcquire(lock: var Lock): bool {.inline, ...raises: [], tags: [], forbids: [].}

Tries to acquire the given lock. Returns true on success.Source Edit

proc wait(cond: var Cond; lock: var Lock) {.inline, ...raises: [], tags: [], forbids: [].}

Waits on the condition variable cond.Source Edit

Templates

template withLock(a: Lock; body: untyped)

Acquires the given lock, executes the statements in body and releases the lock after the statements finish executing.Source Edit