From 6b4b2caf414f0d3c8b903a2e613ad38af46bfd1a Mon Sep 17 00:00:00 2001 From: Araq Date: Sat, 21 Feb 2026 07:24:53 +0100 Subject: [PATCH] YRC improvements: wip --- lib/system/seqs_v2.nim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/system/seqs_v2.nim b/lib/system/seqs_v2.nim index 9ac756aacf..5a3e437012 100644 --- a/lib/system/seqs_v2.nim +++ b/lib/system/seqs_v2.nim @@ -46,16 +46,19 @@ when defined(gcYrc): template yrcCollectorLock(body: untyped) = if lockState == HasMutatorLock: releaseMutatorLock() - let hadToAcquire = lockState < HasCollectorLock + let prevState = lockState + let hadToAcquire = prevState < HasCollectorLock if hadToAcquire: acquireWrite(gYrcGlobalLock) - lockState = HasCollectorLock + lockState = HasCollectorLock + # else: keep lockState as-is (could be Collecting) try: body finally: if hadToAcquire: releaseWrite(gYrcGlobalLock) - lockState = HasNoLock + lockState = prevState + else: template yrcMutatorLock*(body: untyped) = body