mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-09 21:28:13 +00:00
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:
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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() =
|
||||
|
||||
Reference in New Issue
Block a user