ARC: default to a shared heap with --threads:on

This commit is contained in:
Araq 2019-12-24 12:08:22 +01:00 • committed by Andreas Rumpf
commit 5aa7b1a44b
3 changed files with 15 additions and 5 deletions

View file

@ -67,6 +67,8 @@ proc nimNewObj(size: int): pointer {.compilerRtl.} =
var orig = c_malloc(cuint s)
nimZeroMem(orig, s)
result = orig +! sizeof(RefHeader)
elif compileOption("threads"):
result = allocShared0(s) +! sizeof(RefHeader)
else:
result = alloc0(s) +! sizeof(RefHeader)
when hasThreadSupport:
@ -93,6 +95,8 @@ proc nimRawDispose(p: pointer) {.compilerRtl.} =
quit 1
when defined(useMalloc):
c_free(p -! sizeof(RefHeader))
elif compileOption("threads"):
deallocShared(p -! sizeof(RefHeader))
else:
dealloc(p -! sizeof(RefHeader))
if allocs > 0: