Source Edit

This module contains Nim’s support for reentrant locks.

Imports

syslocks

Types

  1. RLock = SysLock

Nim lock, re-entrant Source Edit

Procs

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

Acquires the given lock. Source Edit

  1. proc deinitRLock(lock: var RLock) {.inline, ...raises: [], tags: [], forbids: [].}

Frees the resources associated with the lock. Source Edit

  1. proc initRLock(lock: var RLock) {.inline, ...raises: [], tags: [], forbids: [].}

Initializes the given lock. Source Edit

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

Releases the given lock. Source Edit

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

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

Templates

  1. template withRLock(lock: RLock; code: untyped)

Acquires the given lock and then executes the code. Source Edit