sync.stdatomic #
fn add_i64 #
fn add_i64(ptr &i64, delta int) i64
add_i64 adds provided delta as an atomic operation
fn add_u64 #
fn add_u64(ptr &u64, delta int) u64
add_u64 adds provided delta as an atomic operation
fn load_i64 #
fn load_i64(ptr &i64) i64
atomicall get a value
fn load_u64 #
fn load_u64(ptr &u64) u64
atomicall get a value
fn new_atomic #
fn new_atomic[T](val T) &AtomicVal[T]
new_atomic creates a new atomic value of T
type
fn store_i64 #
fn store_i64(ptr &i64, val i64)
atomicall set a value
fn store_u64 #
fn store_u64(ptr &u64, val u64)
atomic store/load operations have to be used when there might be another concurrent access atomicall set a value
fn sub_i64 #
fn sub_i64(ptr &i64, delta int) i64
add_i64 subtracts provided delta as an atomic operation
fn sub_u64 #
fn sub_u64(ptr &u64, delta int) u64
sub_u64 subtracts provided delta as an atomic operation
fn (AtomicVal[T]) load #
fn (mut a AtomicVal[T]) load() T
load returns current value of the atomic value
fn (AtomicVal[T]) store #
fn (mut a AtomicVal[T]) store(val T)
store updates the atomic value with val
fn (AtomicVal[T]) add #
fn (mut a AtomicVal[T]) add(delta T) T
add adds the atomic value with delta
fn (AtomicVal[T]) sub #
fn (mut a AtomicVal[T]) sub(delta T) T
sub subs the atomic value with delta
struct AtomicVal #
@[heap]
struct AtomicVal[T] {
val T
}