From 15ba765ebd83e44d18a0a2c23016bdf3b4bbecca Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 18 Mar 2020 23:52:49 +0100 Subject: enable --tlsEmulation:on for --gc:arc (#13685) * enable --tlsEmulation:on for --gc:arc * make -d:useMalloc work with --gc:arc --threads:on --- lib/system/memalloc.nim | 2 +- lib/system/mm/malloc.nim | 4 ++-- lib/system/threads.nim | 5 +---- 3 files changed, 4 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/system/memalloc.nim b/lib/system/memalloc.nim index df4df2c15..178d199b8 100644 --- a/lib/system/memalloc.nim +++ b/lib/system/memalloc.nim @@ -339,7 +339,7 @@ when defined(js): proc reallocShared0(p: pointer, oldsize, newsize: Natural): pointer = discard -when hasAlloc and hasThreadSupport: +when hasAlloc and hasThreadSupport and not defined(useMalloc): proc getOccupiedSharedMem*(): int {.rtl.} ## Returns the number of bytes that are owned by the process ## on the shared heap and hold data. This is only available when diff --git a/lib/system/mm/malloc.nim b/lib/system/mm/malloc.nim index 27e32f87d..ad510cef2 100644 --- a/lib/system/mm/malloc.nim +++ b/lib/system/mm/malloc.nim @@ -75,6 +75,6 @@ proc alloc(r: var MemRegion, size: int): pointer = proc alloc0Impl(r: var MemRegion, size: int): pointer = result = alloc0Impl(size) proc dealloc(r: var MemRegion, p: pointer) = dealloc(p) -proc deallocOsPages(r: var MemRegion) {.inline.} = discard -proc deallocOsPages() {.inline.} = discard +proc deallocOsPages(r: var MemRegion) = discard +proc deallocOsPages() = discard diff --git a/lib/system/threads.nim b/lib/system/threads.nim index 54b07e467..b3a4e32e4 100644 --- a/lib/system/threads.nim +++ b/lib/system/threads.nim @@ -79,7 +79,7 @@ when not defined(useNimRtl): # use ``stdcall`` since it is mapped to ``noconv`` on UNIX anyway. type - Thread* {.pure, final.}[TArg] = object + Thread*[TArg] = object core: PGcThread sys: SysThread when TArg is void: @@ -98,9 +98,6 @@ proc onThreadDestruction*(handler: proc () {.closure, gcsafe.}) = ## A thread is destructed when the ``.thread`` proc returns ## normally or when it raises an exception. Note that unhandled exceptions ## in a thread nevertheless cause the whole process to die. - when not defined(nimNoNilSeqs): - if threadDestructionHandlers.isNil: - threadDestructionHandlers = @[] threadDestructionHandlers.add handler template afterThreadRuns() = -- cgit 1.4.1-2-gfad0