From cfdca166fb4a2bd691c25c7bd89bc8abeab3044a Mon Sep 17 00:00:00 2001 From: araq Date: Mon, 23 Feb 2026 00:05:59 +0100 Subject: [PATCH] bugfix --- lib/system/seqs_v2.nim | 5 +++-- lib/system/yrc.nim | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/system/seqs_v2.nim b/lib/system/seqs_v2.nim index f81ac57d59..9120184134 100644 --- a/lib/system/seqs_v2.nim +++ b/lib/system/seqs_v2.nim @@ -27,8 +27,9 @@ when defined(gcYrc): lockState {.threadvar.}: YrcLockState proc acquireMutatorLock() {.compilerRtl, inl.} = - acquireRead gYrcGlobalLock - lockState = HasMutatorLock + if lockState == HasNoLock: + acquireRead gYrcGlobalLock + lockState = HasMutatorLock proc releaseMutatorLock() {.compilerRtl, inl.} = if lockState == HasMutatorLock: diff --git a/lib/system/yrc.nim b/lib/system/yrc.nim index 293ef0a0b9..c18d01a45a 100644 --- a/lib/system/yrc.nim +++ b/lib/system/yrc.nim @@ -435,7 +435,7 @@ when defined(nimOrcStats): proc GC_runOrc* = yrcCollectorLock: mergePendingRoots() - if mayRunCycleCollect(): + if roots.len > 0 and mayRunCycleCollect(): var j: GcEnv init j.traceStack collectCyclesBacon(j, 0)