v / vlib / sync
Raw file | 38 loc (37 sloc) | 518 bytes | Latest commit hash 09802707b
1fn test_shared_modification() {
2 shared foo := &[2, 0, 5]
3 lock foo {
4 unsafe {
5 foo[1] = 3
6 foo[0] *= 7
7 foo[1]--
8 foo[2] -= 2
9 }
10 }
11 rlock foo {
12 unsafe {
13 assert foo[0] == 14
14 assert foo[1] == 2
15 assert foo[2] == 3
16 }
17 }
18}
19
20[direct_array_access]
21fn test_shared_direct_modification() {
22 shared foo := &[2, 0, 5]
23 lock foo {
24 unsafe {
25 foo[1] = 3
26 foo[0] *= 7
27 foo[1]--
28 foo[2] -= 2
29 }
30 }
31 rlock foo {
32 unsafe {
33 assert foo[0] == 14
34 assert foo[1] == 2
35 assert foo[2] == 3
36 }
37 }
38}