enable --tlsEmulation:on for --gc:arc (#13685)

* enable --tlsEmulation:on for --gc:arc
* make -d:useMalloc work with --gc:arc --threads:on
This commit is contained in:
Andreas Rumpf
2020-03-18 23:52:49 +01:00
committed by GitHub
parent a0ccfd16a7
commit 15ba765ebd
4 changed files with 5 additions and 8 deletions

View File

@@ -559,7 +559,7 @@ proc genNamedParamCall(p: BProc, ri: PNode, d: var TLoc) =
proc canRaiseDisp(p: BProc; n: PNode): bool =
# we assume things like sysFatal cannot raise themselves
if n.kind == nkSym and sfNeverRaises in n.sym.flags:
if n.kind == nkSym and {sfNeverRaises, sfImportc, sfCompilerProc} * n.sym.flags != {}:
result = false
elif optPanics in p.config.globalOptions or
(n.kind == nkSym and sfSystemModule in getModule(n.sym).flags):

View File

@@ -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

View File

@@ -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

View File

@@ -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() =