W3cubDocs

/Nim

Module locks

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

Types

Lock = SysLock
Nim lock; whether this is re-entrant or not is unspecified!
Cond = SysCond
Nim condition variable

Procs

proc initLock(lock: var Lock) {.inline, raises: [], tags: [].}
Initializes the given lock.
proc deinitLock(lock: var Lock) {.inline, raises: [], tags: [].}
Frees the resources associated with the lock.
proc tryAcquire(lock: var Lock): bool {.raises: [], tags: [].}
Tries to acquire the given lock. Returns true on success.
proc acquire(lock: var Lock) {.raises: [], tags: [].}
Acquires the given lock.
proc release(lock: var Lock) {.raises: [], tags: [].}
Releases the given lock.
proc initCond(cond: var Cond) {.inline, raises: [], tags: [].}
Initializes the given condition variable.
proc deinitCond(cond: var Cond) {.inline, raises: [], tags: [].}
Frees the resources associated with the lock.
proc wait(cond: var Cond; lock: var Lock) {.inline, raises: [], tags: [].}
waits on the condition variable cond.
proc signal(cond: var Cond) {.inline, raises: [], tags: [].}
sends a signal to the condition variable cond.

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.

© 2006–2017 Andreas Rumpf
Licensed under the MIT License.
https://nim-lang.org/docs/locks.html