summary refs log tree commit diff stats
path: root/lib/system/sysspawn.nim
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2021-04-19 16:51:13 +0800
committerGitHub <noreply@github.com>2021-04-19 10:51:13 +0200
commitdc89b212572fecd449dd469ffb2424c78941c12f (patch)
treef1458632d93f4c94e06dd3114e49773519ffad56 /lib/system/sysspawn.nim
parentcedbc7035d171d1535365c8acb889911b839ce99 (diff)
downloadNim-dc89b212572fecd449dd469ffb2424c78941c12f.tar.gz
[std/locks]close #7998(complete condition variables) (#17711)
* close #7998
* workaround genode

* Update lib/system/syslocks.nim
Diffstat (limited to 'lib/system/sysspawn.nim')
-rw-r--r--lib/system/sysspawn.nim33
1 files changed, 13 insertions, 20 deletions
diff --git a/lib/system/sysspawn.nim b/lib/system/sysspawn.nim
index d1f5803f4..c9b9a68f0 100644
--- a/lib/system/sysspawn.nim
+++ b/lib/system/sysspawn.nim
@@ -20,34 +20,28 @@ when not declared(NimString):
 type
   CondVar = object
     c: SysCond
-    when defined(posix):
-      stupidLock: SysLock
-      counter: int
+    stupidLock: SysLock
+    counter: int
 
 proc createCondVar(): CondVar =
   initSysCond(result.c)
-  when defined(posix):
-    initSysLock(result.stupidLock)
-    #acquireSys(result.stupidLock)
+  initSysLock(result.stupidLock)
+  #acquireSys(result.stupidLock)
 
 proc destroyCondVar(c: var CondVar) {.inline.} =
   deinitSysCond(c.c)
 
 proc await(cv: var CondVar) =
-  when defined(posix):
-    acquireSys(cv.stupidLock)
-    while cv.counter <= 0:
-      waitSysCond(cv.c, cv.stupidLock)
-    dec cv.counter
-    releaseSys(cv.stupidLock)
-  else:
-    waitSysCondWindows(cv.c)
+  acquireSys(cv.stupidLock)
+  while cv.counter <= 0:
+    waitSysCond(cv.c, cv.stupidLock)
+  dec cv.counter
+  releaseSys(cv.stupidLock)
 
 proc signal(cv: var CondVar) =
-  when defined(posix):
-    acquireSys(cv.stupidLock)
-    inc cv.counter
-    releaseSys(cv.stupidLock)
+  acquireSys(cv.stupidLock)
+  inc cv.counter
+  releaseSys(cv.stupidLock)
   signalSysCond(cv.c)
 
 type
@@ -57,8 +51,7 @@ type
 
 proc createFastCondVar(): FastCondVar =
   initSysCond(result.slow.c)
-  when defined(posix):
-    initSysLock(result.slow.stupidLock)
+  initSysLock(result.slow.stupidLock)
     #acquireSys(result.slow.stupidLock)
   result.event = false
   result.slowPath = false