mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
39 lines
518 B
V
39 lines
518 B
V
|
fn test_shared_modification() {
|
||
|
shared foo := &[2, 0, 5]
|
||
|
lock foo {
|
||
|
unsafe {
|
||
|
foo[1] = 3
|
||
|
foo[0] *= 7
|
||
|
foo[1]--
|
||
|
foo[2] -= 2
|
||
|
}
|
||
|
}
|
||
|
rlock foo {
|
||
|
unsafe {
|
||
|
assert foo[0] == 14
|
||
|
assert foo[1] == 2
|
||
|
assert foo[2] == 3
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[direct_array_access]
|
||
|
fn test_shared_direct_modification() {
|
||
|
shared foo := &[2, 0, 5]
|
||
|
lock foo {
|
||
|
unsafe {
|
||
|
foo[1] = 3
|
||
|
foo[0] *= 7
|
||
|
foo[1]--
|
||
|
foo[2] -= 2
|
||
|
}
|
||
|
}
|
||
|
rlock foo {
|
||
|
unsafe {
|
||
|
assert foo[0] == 14
|
||
|
assert foo[1] == 2
|
||
|
assert foo[2] == 3
|
||
|
}
|
||
|
}
|
||
|
}
|