In Scalar§

See primary documentation in context for sub atomic-assign

multi sub atomic-assign($target is rw$value)

Performs an atomic assignment of $value into the Scalar $target. The atomic-assign routine ensures that any required barriers are performed such that the changed value will be "published" to other threads.

In atomicint§

See primary documentation in context for sub atomic-assign

multi sub atomic-assign(atomicint $ is rwint $value)
multi sub atomic-assign(atomicint $ is rwInt() $value)

Performs an atomic assignment to a native integer, which may be in a lexical, attribute, or native array element. If $value cannot unbox to a 64-bit native integer due to being too large, an exception will be thrown. If the size of atomicint is only 32 bits, then an out of range $value will be silently truncated. The atomic-assign routine ensures that any required barriers are performed such that the changed value will be "published" to other threads.