1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
block global:
proc getState(): int =
var state0 {.global.}: int
inc state0
result = state0
for i in 0 ..< 3:
doAssert getState() == i + 1
for i in 0 ..< 3:
once:
doAssert i == 0
block threadvar:
proc getThreadState0(): int =
var state0 {.threadvar.}: int
inc state0
result = state0
for i in 0 ..< 3:
doAssert getThreadState0() == i + 1
proc getThreadState1(): int =
var state1 {.threadvar.}: int
inc state1
result = state1
for i in 0 ..< 3:
doAssert getThreadState1() == i + 1
|