diff options
Diffstat (limited to 'lib/system/refs_v2.nim')
-rw-r--r-- | lib/system/refs_v2.nim | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/system/refs_v2.nim b/lib/system/refs_v2.nim index 3033880c3..6fd34fca6 100644 --- a/lib/system/refs_v2.nim +++ b/lib/system/refs_v2.nim @@ -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: |