summary refs log tree commit diff stats
path: root/tests/coroutines/twait.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/coroutines/twait.nim')
-rw-r--r--tests/coroutines/twait.nim28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/coroutines/twait.nim b/tests/coroutines/twait.nim
new file mode 100644
index 000000000..2edfcf675
--- /dev/null
+++ b/tests/coroutines/twait.nim
@@ -0,0 +1,28 @@
+discard """
+  output: "Exit 1\nExit 2"
+  matrix: "--gc:refc; --gc:arc; --gc:orc"
+  targets: "c"
+"""
+
+when compileOption("gc", "refc") or not defined(openbsd):
+  # xxx openbsd failed, see tgc.nim
+  import coro
+
+  var coro1: CoroutineRef
+
+  proc testCoroutine1() =
+    for i in 0..<10:
+      suspend(0)
+    echo "Exit 1"
+
+  proc testCoroutine2() =
+    coro1.wait()
+    echo "Exit 2"
+
+  coro1 = coro.start(testCoroutine1)
+  coro.start(testCoroutine2)
+  run()
+else:
+  # workaround
+  echo "Exit 1"
+  echo "Exit 2"