mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
42 lines
765 B
Nim
42 lines
765 B
Nim
discard """
|
|
ccodeCheck: "@'genericDeepCopy(' .*"
|
|
action: compile
|
|
"""
|
|
|
|
# bug #2286
|
|
|
|
import threadPool
|
|
|
|
type
|
|
Person = ref object
|
|
name: string
|
|
friend: Person
|
|
|
|
var
|
|
people: seq[Person] = @[]
|
|
|
|
proc newPerson(name:string): Person =
|
|
result.new()
|
|
result.name = name
|
|
|
|
proc greet(p:Person) =
|
|
p.friend.name &= "-MUT" # this line crashes the program
|
|
echo "Person {",
|
|
" name:", p.name, "(", cast[int](addr p.name),"),",
|
|
" friend:", p.friend.name, "(", cast[int](addr p.friend.name),") }"
|
|
|
|
proc setup =
|
|
for i in 0 ..< 20:
|
|
people.add newPerson("Person" & $(i + 1))
|
|
for i in 0 ..< 20:
|
|
people[i].friend = people[19-i]
|
|
|
|
proc update =
|
|
parallel:
|
|
for i in 0 .. people.high:
|
|
spawn people[i].greet()
|
|
|
|
when true:
|
|
setup()
|
|
update()
|