store a pointer to thread local storage to make the GC happy

This commit is contained in:
Araq 2011-05-16 00:50:46 +02:00
commit 6dd8c85051
2 changed files with 5 additions and 4 deletions

View file

@ -106,9 +106,10 @@ when hasThreadSupport:
PGlobals = ptr TGlobals
var globalsSlot = ThreadVarAlloc()
proc CreateThreadLocalStorage*() {.inl.} =
proc CreateThreadLocalStorage*(): pointer {.inl.} =
isMultiThreaded = true
ThreadVarSetValue(globalsSlot, alloc0(sizeof(TGlobals)))
result = alloc0(sizeof(TGlobals))
ThreadVarSetValue(globalsSlot, result)
proc GetGlobals(): PGlobals {.compilerRtl, inl.} =
result = cast[PGlobals](ThreadVarGetValue(globalsSlot))