std/private/threadtypes
Source Edit Types
GcThread {.pure, inheritable.} = object
when emulatedThreadVars:
tls*: ThreadLocalStorage
else:
nil
when hasSharedHeap:
next*, prev*: PGcThread
stackBottom*, stackTop*: pointer
stackSize*: int
else:
nil - Source Edit
Thread[TArg] = object
core*: PGcThread
sys*: SysThread
when TArg is void:
dataFn*: proc () {.nimcall, ...gcsafe.}
else:
dataFn*: proc (m: TArg) {.nimcall, ...gcsafe.}
data*: TArg
when hasAllocStack:
rawStack*: pointer - Source Edit
ThreadLocalStorage = array[0 .. (nimTlsSize div 8), float]
- Source Edit
WinThreadProc = proc (x: pointer): int32 {.stdcall.} - Source Edit
Consts
Procs
proc `=copy`[TArg](x: var Thread[TArg]; y: Thread[TArg]) {.error.} - Source Edit
proc createThread(lpThreadAttributes: pointer; dwStackSize: int32;
lpStartAddress: WinThreadProc; lpParameter: pointer;
dwCreationFlags: int32; lpThreadId: var int32): SysThread {.
stdcall, dynlib: "kernel32", importc: "CreateThread", ...raises: [], tags: [],
forbids: [].} - Source Edit
proc setThreadAffinityMask(hThread: SysThread; dwThreadAffinityMask: uint) {.
importc: "SetThreadAffinityMask", stdcall, header: "<windows.h>",
...raises: [], tags: [], forbids: [].} - Source Edit
proc terminateThread(hThread: SysThread; dwExitCode: int32): int32 {.stdcall,
dynlib: "kernel32", importc: "TerminateThread", ...raises: [], tags: [],
forbids: [].} - Source Edit
proc waitForSingleObject(hHandle: SysThread; dwMilliseconds: int32): int32 {.
stdcall, dynlib: "kernel32", importc: "WaitForSingleObject", ...raises: [],
tags: [], forbids: [].} - Source Edit
proc winResumeThread(hThread: SysThread): int32 {.stdcall, dynlib: "kernel32",
importc: "ResumeThread", ...raises: [], tags: [], forbids: [].} - Source Edit
proc winSuspendThread(hThread: SysThread): int32 {.stdcall, dynlib: "kernel32",
importc: "SuspendThread", ...raises: [], tags: [], forbids: [].} - Source Edit