summary refs log tree commit diff stats
path: root/tests/parallel/tflowvar.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/parallel/tflowvar.nim')
-rw-r--r--tests/parallel/tflowvar.nim38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/parallel/tflowvar.nim b/tests/parallel/tflowvar.nim
new file mode 100644
index 000000000..e44b29a87
--- /dev/null
+++ b/tests/parallel/tflowvar.nim
@@ -0,0 +1,38 @@
+discard """
+  matrix: "--mm:refc"
+  output: '''foobarfoobar
+bazbearbazbear
+
+1'''
+  cmd: "nim $target --threads:on $options $file"
+  disabled: "openbsd"
+"""
+
+import threadpool
+
+proc computeSomething(a, b: string): string = a & b & a & b & "\n"
+
+proc main =
+  let fvA = spawn computeSomething("foo", "bar")
+  let fvB = spawn computeSomething("baz", "bear")
+
+  echo(^fvA, ^fvB)
+
+main()
+sync()
+
+
+type
+  TIntSeq = seq[int]
+
+proc t(): TIntSeq =
+  result = @[1]
+
+proc p(): int =
+  var a: FlowVar[TIntSeq]
+  parallel:
+    var aa = spawn t()
+    a = aa
+  result = (^a)[0]
+
+echo p()