make testament compile again with -d:nimCoroutines
This commit is contained in:
parent
9a05fd9dcf
commit
dd3e1cbc9b
1 changed files with 21 additions and 21 deletions
|
|
@ -157,27 +157,6 @@ else:
|
||||||
iterator items(first: var GcStack): ptr GcStack = yield addr(first)
|
iterator items(first: var GcStack): ptr GcStack = yield addr(first)
|
||||||
proc len(stack: var GcStack): int = 1
|
proc len(stack: var GcStack): int = 1
|
||||||
|
|
||||||
when nimCoroutines:
|
|
||||||
proc setPosition(stack: ptr GcStack, position: pointer) =
|
|
||||||
stack.pos = position
|
|
||||||
stack.maxStackSize = max(stack.maxStackSize, stack.stackSize())
|
|
||||||
|
|
||||||
proc setPosition(stack: var GcStack, position: pointer) =
|
|
||||||
setPosition(addr(stack), position)
|
|
||||||
|
|
||||||
proc getActiveStack(gch: var GcHeap): ptr GcStack =
|
|
||||||
return gch.activeStack
|
|
||||||
|
|
||||||
proc isActiveStack(stack: ptr GcStack): bool =
|
|
||||||
return gch.activeStack == stack
|
|
||||||
else:
|
|
||||||
# Stack positions do not need to be tracked if coroutines are not used.
|
|
||||||
proc setPosition(stack: ptr GcStack, position: pointer) = discard
|
|
||||||
proc setPosition(stack: var GcStack, position: pointer) = discard
|
|
||||||
# There is just one stack - main stack of the thread. It is active always.
|
|
||||||
proc getActiveStack(gch: var GcHeap): ptr GcStack = addr(gch.stack)
|
|
||||||
proc isActiveStack(stack: ptr GcStack): bool = true
|
|
||||||
|
|
||||||
when declared(threadType):
|
when declared(threadType):
|
||||||
proc setupForeignThreadGc*() {.gcsafe.} =
|
proc setupForeignThreadGc*() {.gcsafe.} =
|
||||||
## Call this if you registered a callback that will be run from a thread not
|
## Call this if you registered a callback that will be run from a thread not
|
||||||
|
|
@ -246,6 +225,27 @@ proc stackSize(): int {.noinline.} =
|
||||||
for stack in gch.stack.items():
|
for stack in gch.stack.items():
|
||||||
result = result + stack.stackSize()
|
result = result + stack.stackSize()
|
||||||
|
|
||||||
|
when nimCoroutines:
|
||||||
|
proc setPosition(stack: ptr GcStack, position: pointer) =
|
||||||
|
stack.pos = position
|
||||||
|
stack.maxStackSize = max(stack.maxStackSize, stack.stackSize())
|
||||||
|
|
||||||
|
proc setPosition(stack: var GcStack, position: pointer) =
|
||||||
|
setPosition(addr(stack), position)
|
||||||
|
|
||||||
|
proc getActiveStack(gch: var GcHeap): ptr GcStack =
|
||||||
|
return gch.activeStack
|
||||||
|
|
||||||
|
proc isActiveStack(stack: ptr GcStack): bool =
|
||||||
|
return gch.activeStack == stack
|
||||||
|
else:
|
||||||
|
# Stack positions do not need to be tracked if coroutines are not used.
|
||||||
|
proc setPosition(stack: ptr GcStack, position: pointer) = discard
|
||||||
|
proc setPosition(stack: var GcStack, position: pointer) = discard
|
||||||
|
# There is just one stack - main stack of the thread. It is active always.
|
||||||
|
proc getActiveStack(gch: var GcHeap): ptr GcStack = addr(gch.stack)
|
||||||
|
proc isActiveStack(stack: ptr GcStack): bool = true
|
||||||
|
|
||||||
{.push stack_trace: off.}
|
{.push stack_trace: off.}
|
||||||
when nimCoroutines:
|
when nimCoroutines:
|
||||||
proc GC_addStack(bottom: pointer) {.cdecl, exportc.} =
|
proc GC_addStack(bottom: pointer) {.cdecl, exportc.} =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue