summary refs log tree commit diff stats
path: root/tests/threads
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2014-04-20 14:00:04 +0200
committerAraq <rumpf_a@web.de>2014-04-20 14:00:04 +0200
commitbe6474af638b72aabeb70cfc5f477cc5fb7af0ce (patch)
treef25002ea96fcfbd69997e22208c55eb3930eeaf0 /tests/threads
parent39e4e3f20570e804e3059574eafe8f78b2d8a9df (diff)
downloadNim-be6474af638b72aabeb70cfc5f477cc5fb7af0ce.tar.gz
removed flawed thread analysis pass
Diffstat (limited to 'tests/threads')
-rw-r--r--tests/threads/tthreadanalysis2.nim6
-rw-r--r--tests/threads/tthreadanalysis3.nim51
2 files changed, 3 insertions, 54 deletions
diff --git a/tests/threads/tthreadanalysis2.nim b/tests/threads/tthreadanalysis2.nim
index 697e2cb22..bcc09db98 100644
--- a/tests/threads/tthreadanalysis2.nim
+++ b/tests/threads/tthreadanalysis2.nim
@@ -1,7 +1,7 @@
 discard """
   file: "tthreadanalysis2.nim"
-  line: 42
-  errormsg: "write to foreign heap"
+  line: 37
+  errormsg: "'threadFunc' is not GC-safe"
   cmd: "nimrod $target --hints:on --threads:on $options $file"
 """
 
@@ -10,7 +10,7 @@ import os
 var
   thr: array [0..5, TThread[tuple[a, b: int]]]
 
-proc doNothing() = nil
+proc doNothing() = discard
 
 type
   PNode = ref TNode
diff --git a/tests/threads/tthreadanalysis3.nim b/tests/threads/tthreadanalysis3.nim
deleted file mode 100644
index 3c17fe7e2..000000000
--- a/tests/threads/tthreadanalysis3.nim
+++ /dev/null
@@ -1,51 +0,0 @@
-discard """
-  file: "tthreadanalysis3.nim"
-  line: 35
-  errormsg: "write to foreign heap"
-  cmd: "nimrod $target --hints:on --threads:on $options $file"
-"""
-
-import os
-
-var
-  thr: array [0..5, TThread[tuple[a, b: int]]]
-
-proc doNothing() = nil
-
-type
-  PNode = ref TNode
-  TNode = object {.pure.}
-    le, ri: PNode
-    data: string
-
-var
-  root: PNode
-
-proc buildTree(depth: int): PNode =
-  if depth == 3: return nil
-  new(result)
-  result.le = buildTree(depth-1)
-  result.ri = buildTree(depth-1)
-  result.data = $depth
-
-proc echoLeTree(n: PNode) =
-  var it = n
-  while it != nil:
-    echo it.data
-    it = it.le
-
-proc threadFunc(interval: tuple[a, b: int]) {.thread.} = 
-  doNothing()
-  for i in interval.a..interval.b: 
-    var r = buildTree(i)
-    echoLeTree(r) # for local data
-  echoLeTree(root) # and the same for foreign data :-)
-
-proc main =
-  root = buildTree(5)
-  for i in 0..high(thr):
-    createThread(thr[i], threadFunc, (i*100, i*100+50))
-  joinThreads(thr)
-
-main()
-