diff options
Diffstat (limited to 'tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim')
-rw-r--r-- | tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim new file mode 100644 index 000000000..7bdde8397 --- /dev/null +++ b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim @@ -0,0 +1,20 @@ +discard """ + errormsg: "unguarded access: counter" + line: 14 +""" + +import threadpool, locks + +var counterLock: Lock +initLock(counterLock) +var counter {.guard: counterLock.} = 0 + +proc increment(x: int) = + for i in 0 ..< x: + let value = counter + 1 + counter = value + +spawn increment(10_000) +spawn increment(10_000) +sync() +echo(counter) |