Expose GC_setStackBottom (#7885)

This commit is contained in:
Yuriy Glukhov 2018-06-04 12:12:18 +03:00 • committed by Andreas Rumpf
commit 395b7506cf
5 changed files with 17 additions and 13 deletions

View file

@ -200,7 +200,7 @@ when declared(threadType):
if threadType == ThreadType.None:
initAllocator()
var stackTop {.volatile.}: pointer
setStackBottom(addr(stackTop))
nimGC_setStackBottom(addr(stackTop))
initGC()
threadType = ThreadType.ForeignThread
@ -257,7 +257,7 @@ when nimCoroutines:
gch.activeStack.setPosition(addr(sp))
when not defined(useNimRtl):
proc setStackBottom(theStackBottom: pointer) =
proc nimGC_setStackBottom(theStackBottom: pointer) =
# Initializes main stack of the thread.
when nimCoroutines:
if gch.stack.next == nil:

View file

@ -401,7 +401,7 @@ proc getFreeMem*(r: MemRegion): int = r.remaining
proc getTotalMem*(r: MemRegion): int =
result = r.totalSize
proc setStackBottom(theStackBottom: pointer) = discard
proc nimGC_setStackBottom(theStackBottom: pointer) = discard
proc nimGCref(x: pointer) {.compilerProc.} = discard
proc nimGCunref(x: pointer) {.compilerProc.} = discard

View file

@ -146,7 +146,7 @@ when defined(boehmgc):
proc getFreeMem(): int = return boehmGetFreeBytes()
proc getTotalMem(): int = return boehmGetHeapSize()
proc setStackBottom(theStackBottom: pointer) = discard
proc nimGC_setStackBottom(theStackBottom: pointer) = discard
proc initGC() =
boehmGCinit()
@ -305,7 +305,7 @@ elif defined(gogc):
goRuntime_ReadMemStats(addr mstats)
result = int(mstats.sys)
proc setStackBottom(theStackBottom: pointer) = discard
proc nimGC_setStackBottom(theStackBottom: pointer) = discard
proc alloc(size: Natural): pointer =
result = c_malloc(size)
@ -449,7 +449,7 @@ elif defined(nogc) and defined(useMalloc):
proc getFreeMem(): int = discard
proc getTotalMem(): int = discard
proc setStackBottom(theStackBottom: pointer) = discard
proc nimGC_setStackBottom(theStackBottom: pointer) = discard
proc initGC() = discard
@ -523,7 +523,7 @@ elif defined(nogc):
proc growObj(old: pointer, newsize: int): pointer =
result = realloc(old, newsize)
proc setStackBottom(theStackBottom: pointer) = discard
proc nimGC_setStackBottom(theStackBottom: pointer) = discard
proc nimGCref(p: pointer) {.compilerproc, inline.} = discard
proc nimGCunref(p: pointer) {.compilerproc, inline.} = discard

View file

@ -440,7 +440,7 @@ proc threadProcWrapStackFrame[TArg](thrd: ptr Thread[TArg]) =
threadProcWrapDispatch[TArg]
when not hasSharedHeap:
# init the GC for refc/markandsweep
setStackBottom(addr(p))
nimGC_setStackBottom(addr(p))
initGC()
when declared(threadType):
threadType = ThreadType.NimThread