v2 / vlib / v / tests / concurrency / shared_primitive_test.v
33 lines · 29 sloc · 488 bytes · 995e61cd88c33e82cd4ed12daa309e65eee51bc2
Raw
1fn read_int(n int) int {
2 return n
3}
4
5fn read_string(s string) string {
6 return s
7}
8
9fn test_shared_primitive_types() {
10 shared counter := int(41)
11 shared greeting := 'hi'
12
13 rlock counter {
14 assert read_int(counter) == 41
15 }
16 lock counter {
17 counter++
18 counter = 43
19 }
20 rlock counter {
21 assert read_int(counter) == 43
22 }
23
24 rlock greeting {
25 assert read_string(greeting) == 'hi'
26 }
27 lock greeting {
28 greeting = 'hi!'
29 }
30 rlock greeting {
31 assert read_string(greeting) == 'hi!'
32 }
33}
34