fixes #2074
This commit is contained in:
parent
9053799bf5
commit
3dd1ecbae4
1 changed files with 11 additions and 1 deletions
|
|
@ -84,8 +84,18 @@ when defined(windows):
|
||||||
importc: "TlsAlloc", stdcall, header: "<windows.h>".}
|
importc: "TlsAlloc", stdcall, header: "<windows.h>".}
|
||||||
proc threadVarSetValue(dwTlsIndex: TThreadVarSlot, lpTlsValue: pointer) {.
|
proc threadVarSetValue(dwTlsIndex: TThreadVarSlot, lpTlsValue: pointer) {.
|
||||||
importc: "TlsSetValue", stdcall, header: "<windows.h>".}
|
importc: "TlsSetValue", stdcall, header: "<windows.h>".}
|
||||||
proc threadVarGetValue(dwTlsIndex: TThreadVarSlot): pointer {.
|
proc tlsGetValue(dwTlsIndex: TThreadVarSlot): pointer {.
|
||||||
importc: "TlsGetValue", stdcall, header: "<windows.h>".}
|
importc: "TlsGetValue", stdcall, header: "<windows.h>".}
|
||||||
|
|
||||||
|
proc getLastError(): uint32 {.
|
||||||
|
importc: "GetLastError", stdcall, header: "<windows.h>".}
|
||||||
|
proc setLastError(x: uint32) {.
|
||||||
|
importc: "SetLastError", stdcall, header: "<windows.h>".}
|
||||||
|
|
||||||
|
proc threadVarGetValue(dwTlsIndex: TThreadVarSlot): pointer =
|
||||||
|
let realLastError = getLastError()
|
||||||
|
result = tlsGetValue(dwTlsIndex)
|
||||||
|
setLastError(realLastError)
|
||||||
else:
|
else:
|
||||||
proc threadVarAlloc(): TThreadVarSlot {.
|
proc threadVarAlloc(): TThreadVarSlot {.
|
||||||
importc: "TlsAlloc", stdcall, dynlib: "kernel32".}
|
importc: "TlsAlloc", stdcall, dynlib: "kernel32".}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue