v/vlib/sync/array_rlock_test.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
}
}
}