mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-14 23:33:28 +00:00
small fixes for atomicArc (#22017)
* small fixes for atomicArc * Update lib/system/arc.nim
This commit is contained in:
@@ -187,7 +187,7 @@ proc processRequest(
|
||||
# \n
|
||||
request.headers.clear()
|
||||
request.body = ""
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc):
|
||||
request.hostname = address
|
||||
else:
|
||||
request.hostname.shallowCopy(address)
|
||||
|
||||
@@ -37,7 +37,7 @@ when defined(nimPreviewSlimSystem):
|
||||
import std/assertions
|
||||
|
||||
const defaultStackSize = 512 * 1024
|
||||
const useOrcArc = defined(gcArc) or defined(gcOrc)
|
||||
const useOrcArc = defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc)
|
||||
|
||||
when useOrcArc:
|
||||
proc nimGC_setStackBottom*(theStackBottom: pointer) = discard
|
||||
|
||||
@@ -856,7 +856,7 @@ proc parseJson(p: var JsonParser; rawIntegers, rawFloats: bool, depth = 0): Json
|
||||
case p.tok
|
||||
of tkString:
|
||||
# we capture 'p.a' here, so we need to give it a fresh buffer afterwards:
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc):
|
||||
result = JsonNode(kind: JString, str: move p.a)
|
||||
else:
|
||||
result = JsonNode(kind: JString)
|
||||
|
||||
@@ -304,7 +304,7 @@ proc store*[T](s: Stream, data: sink T) =
|
||||
|
||||
var stored = initIntSet()
|
||||
var d: T
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc)or defined(gcAtomicArc):
|
||||
d = data
|
||||
else:
|
||||
shallowCopy(d, data)
|
||||
@@ -333,7 +333,7 @@ proc `$$`*[T](x: sink T): string =
|
||||
else:
|
||||
var stored = initIntSet()
|
||||
var d: T
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc):
|
||||
d = x
|
||||
else:
|
||||
shallowCopy(d, x)
|
||||
|
||||
@@ -325,7 +325,7 @@ proc low*(x: string): int {.magic: "Low", noSideEffect.}
|
||||
## See also:
|
||||
## * `high(string) <#high,string>`_
|
||||
|
||||
when not defined(gcArc) and not defined(gcOrc):
|
||||
when not defined(gcArc) and not defined(gcOrc) and not defined(gcAtomicArc):
|
||||
proc shallowCopy*[T](x: var T, y: T) {.noSideEffect, magic: "ShallowCopy".}
|
||||
## Use this instead of `=` for a `shallow copy`:idx:.
|
||||
##
|
||||
@@ -360,7 +360,7 @@ when defined(nimHasDup):
|
||||
|
||||
proc `=sink`*[T](x: var T; y: T) {.inline, nodestroy, magic: "Asgn".} =
|
||||
## Generic `sink`:idx: implementation that can be overridden.
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc):
|
||||
x = y
|
||||
else:
|
||||
shallowCopy(x, y)
|
||||
@@ -2336,7 +2336,7 @@ when compileOption("rangechecks"):
|
||||
else:
|
||||
template rangeCheck*(cond) = discard
|
||||
|
||||
when not defined(gcArc) and not defined(gcOrc):
|
||||
when not defined(gcArc) and not defined(gcOrc) and not defined(gcAtomicArc):
|
||||
proc shallow*[T](s: var seq[T]) {.noSideEffect, inline.} =
|
||||
## Marks a sequence `s` as `shallow`:idx:. Subsequent assignments will not
|
||||
## perform deep copies of `s`.
|
||||
@@ -2393,7 +2393,7 @@ when hasAlloc or defined(nimscript):
|
||||
setLen(x, xl+item.len)
|
||||
var j = xl-1
|
||||
while j >= i:
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when defined(gcArc) or defined(gcOrc) or defined(gcAtomicArc):
|
||||
x[j+item.len] = move x[j]
|
||||
else:
|
||||
shallowCopy(x[j+item.len], x[j])
|
||||
|
||||
@@ -42,7 +42,7 @@ Complete traversal is done in this way::
|
||||
|
||||
]#
|
||||
|
||||
when defined(gcOrc) or defined(gcArc):
|
||||
when defined(gcOrc) or defined(gcArc) or defined(gcAtomicArc):
|
||||
type
|
||||
PCell = Cell
|
||||
|
||||
@@ -78,7 +78,7 @@ type
|
||||
head: PPageDesc
|
||||
data: PPageDescArray
|
||||
|
||||
when defined(gcOrc) or defined(gcArc):
|
||||
when defined(gcOrc) or defined(gcArc) or defined(gcAtomicArc):
|
||||
discard
|
||||
else:
|
||||
include cellseqs_v1
|
||||
|
||||
@@ -29,7 +29,7 @@ const doNotUnmap = not (defined(amd64) or defined(i386)) or
|
||||
|
||||
|
||||
when defined(nimAllocPagesViaMalloc):
|
||||
when not defined(gcArc) and not defined(gcOrc):
|
||||
when not defined(gcArc) and not defined(gcOrc) and not defined(gcAtomicArc):
|
||||
{.error: "-d:nimAllocPagesViaMalloc is only supported with --gc:arc or --gc:orc".}
|
||||
|
||||
proc osTryAllocPages(size: int): pointer {.inline.} =
|
||||
|
||||
Reference in New Issue
Block a user