diff options
Diffstat (limited to 'tests/parallel/twrong_refcounts.nim')
-rw-r--r-- | tests/parallel/twrong_refcounts.nim | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/tests/parallel/twrong_refcounts.nim b/tests/parallel/twrong_refcounts.nim deleted file mode 100644 index 57e0588a0..000000000 --- a/tests/parallel/twrong_refcounts.nim +++ /dev/null @@ -1,53 +0,0 @@ -discard """ - output: "Success" -""" - -import math, random, threadPool - -# --- - -type - Person = object - age: int - friend: ref Person - -var - people: seq[ref Person] = @[] - -proc newPerson(age:int): ref Person = - result.new() - result.age = age - -proc greet(p:Person) = - #echo p.age, ", ", p.friend.age - p.friend.age += 1 - -# --- - -proc setup = - for i in 0 .. <20: - people.add newPerson(i + 1) - for i in 0 .. <20: - people[i].friend = people[random(20)] - -proc update = - var countA: array[20, int] - var countB: array[20, int] - - for i, p in people: - countA[i] = getRefCount(p) - parallel: - for i in 0 .. people.high: - spawn greet(people[i][]) - for i, p in people: - countB[i] = getRefCount(p) - - for i in 0 .. <20: - doAssert countA[i] == countB[i] - echo "Success" - -# --- - -when isMainModule: - setup() - update() |