diff options
author | Rokas Kupstys <rokups@zoho.com> | 2017-02-10 19:51:38 +0200 |
---|---|---|
committer | Rokas Kupstys <rokups@zoho.com> | 2017-02-20 17:24:19 +0200 |
commit | a3b8bf300df20f2922275ff62293e3f882cad090 (patch) | |
tree | 094fe677525a5ee7c99e086f1d24c3e5354d1517 /lib/windows/winlean.nim | |
parent | ce4587d7b721839ffa8ed4c9d1c2abd8f308f99d (diff) | |
download | Nim-a3b8bf300df20f2922275ff62293e3f882cad090.tar.gz |
Added fiber API to winlean.nim
Diffstat (limited to 'lib/windows/winlean.nim')
-rw-r--r-- | lib/windows/winlean.nim | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim index 02821b792..fa9ce9eed 100644 --- a/lib/windows/winlean.nim +++ b/lib/windows/winlean.nim @@ -1036,3 +1036,17 @@ else: proc readConsoleInput*(hConsoleInput: Handle, lpBuffer: pointer, nLength: cint, lpNumberOfEventsRead: ptr cint): cint {.stdcall, dynlib: "kernel32", importc: "ReadConsoleInputW".} + +type + LPFIBER_START_ROUTINE* = proc (param: pointer): void {.stdcall.} + +const + FIBER_FLAG_FLOAT_SWITCH* = 0x01 + +proc CreateFiber*(stackSize: int, fn: LPFIBER_START_ROUTINE, param: pointer): pointer {.stdcall, discardable, dynlib: "kernel32", importc.} +proc CreateFiberEx*(stkCommit: int, stkReserve: int, flags: int32, fn: LPFIBER_START_ROUTINE, param: pointer): pointer {.stdcall, discardable, dynlib: "kernel32", importc.} +proc ConvertThreadToFiber*(param: pointer): pointer {.stdcall, discardable, dynlib: "kernel32", importc.} +proc ConvertThreadToFiberEx*(param: pointer, flags: int32): pointer {.stdcall, discardable, dynlib: "kernel32", importc.} +proc DeleteFiber*(fiber: pointer): void {.stdcall, discardable, dynlib: "kernel32", importc.} +proc SwitchToFiber*(fiber: pointer): void {.stdcall, discardable, dynlib: "kernel32", importc.} +proc GetCurrentFiber*(): pointer {.stdcall, importc, header: "Windows.h".} |