std/locks
Source Edit This module contains Nim's support for locks and condition vars.
Imports
syslocks
Types
Lock = SysLock
- Nim lock; whether this is re-entrant or not is unspecified! Source Edit
Procs
proc `$`(lock: Lock): string {....raises: [], tags: [], forbids: [].} - Source Edit
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