summary refs log tree commit diff stats
path: root/tests/parallel/tinvalid_counter_usage.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-05-14 23:36:28 +0200
committerAraq <rumpf_a@web.de>2014-05-14 23:36:28 +0200
commit31b8fd66b1bd54b665e52855909538a50d33d7c3 (patch)
treea172909bbd79ae2b8a0e066fe3cd2a90b856d1ee /tests/parallel/tinvalid_counter_usage.nim
parentc43e8df90cc5d52c6c57452a28f433075bf66236 (diff)
downloadNim-31b8fd66b1bd54b665e52855909538a50d33d7c3.tar.gz
'parallel' statement: next steps
Diffstat (limited to 'tests/parallel/tinvalid_counter_usage.nim')
-rw-r--r--tests/parallel/tinvalid_counter_usage.nim26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/parallel/tinvalid_counter_usage.nim b/tests/parallel/tinvalid_counter_usage.nim
new file mode 100644
index 000000000..c6303c651
--- /dev/null
+++ b/tests/parallel/tinvalid_counter_usage.nim
@@ -0,0 +1,26 @@
+discard """
+  errormsg: "invalid usage of counter after increment"
+  line: 21
+"""
+
+import threadpool
+
+proc f(a: openArray[int]) =
+  for x in a: echo x
+
+proc f(a: int) = echo a
+
+proc main() =
+  var a: array[0..30, int]
+  parallel:
+    spawn f(a[0..15])
+    spawn f(a[16..30])
+    var i = 0
+    while i <= 30:
+      inc i
+      spawn f(a[i])
+      inc i
+      #spawn f(a[i+1])
+      #inc i  # inc i, 2  would be correct here
+
+main()