# std/private/syslocks

Theme:

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs
- devel, stable

Search:
Source Edit

# Types

    SysCond {.importc: "RTL_CONDITION_VARIABLE", header: "<windows.h>", byref.} = object

  Source Edit

    SysLock {.importc: "CRITICAL_SECTION", header: "<windows.h>", final, pure, byref.} = object

  Source Edit

# Procs

    proc acquireSys(L: var SysLock) {.importc: "EnterCriticalSection",
                                      header: "<windows.h>", ...raises: [], tags: [],
                                      forbids: [].}

  Acquires the lock `L`. Source Edit

    proc broadcastSysCond(hEvent: var SysCond) {.stdcall, noSideEffect,
        dynlib: "kernel32", importc: "WakeAllConditionVariable", ...raises: [],
        tags: [], forbids: [].}

  Source Edit

    proc deinitSys(L: SysLock) {.importc: "DeleteCriticalSection",
                                 header: "<windows.h>", ...raises: [], tags: [],
                                 forbids: [].}

  Source Edit

    proc deinitSysCond(cond: SysCond) {.inline, ...raises: [], tags: [], forbids: [].}

  Source Edit

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

  Source Edit

    proc initSysLock(L: var SysLock) {.importc: "InitializeCriticalSection",
                                       header: "<windows.h>", ...raises: [], tags: [],
                                       forbids: [].}

  Initializes the lock `L`. Source Edit

    proc releaseSys(L: var SysLock) {.importc: "LeaveCriticalSection",
                                      header: "<windows.h>", ...raises: [], tags: [],
                                      forbids: [].}

  Releases the lock `L`. Source Edit

    proc signalSysCond(hEvent: var SysCond) {.stdcall, noSideEffect,
        dynlib: "kernel32", importc: "WakeConditionVariable", ...raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc tryAcquireSys(L: var SysLock): bool {.inline, ...raises: [], tags: [],
        forbids: [].}

  Source Edit

    proc waitSysCond(cond: var SysCond; lock: var SysLock) {....raises: [], tags: [],
        forbids: [].}

  Source Edit