Documentation for sub atomic-assign

Documentation for sub atomic-assign, assembled from the following types:

class atomicint

From atomicint

(atomicint) sub atomic-assign

Defined as:

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.