v2 / vlib / v / tests / concurrency / inherited_vars_test.v
32 lines · 28 sloc · 285 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Shared {
2mut:
3 a int
4}
5
6fn test_atomic() {
7 atomic a := 0
8 a++
9
10 fn [atomic a] () {
11 a++
12 dump(a)
13 }()
14 dump(a)
15 assert a == 1
16}
17
18fn test_shared() {
19 shared b := Shared{
20 a: 0
21 }
22
23 fn [shared b] () {
24 lock b {
25 b.a++
26 }
27 }()
28 rlock b {
29 dump(b.a)
30 assert b.a == 1
31 }
32}
33