type

AtomicRef

src @Js
const class AtomicRef : Obj

AtomicRef is used to manage a object reference shared between actor/threads with atomic updates. Only immutable objects may be shared.

constructors

make

Construct with initial value.

fields

val

The current value.

methods

compareAndSet

Atomically set the value to update if current value is equivalent to the expect value compared using === operator.

getAndSet

Atomically set the value and return the previous value.

toStr

Return val.toStr

Slot Details

compareAndSet

src Bool compareAndSet(Obj? expect, Obj? update)

Atomically set the value to update if current value is equivalent to the expect value compared using === operator. Return true if updated, or false if current value was not equal to the expected value. Throw NotImmutableErr if update is mutable.

getAndSet

src Obj? getAndSet(Obj? val)

Atomically set the value and return the previous value. Throw NotImmutableErr if val is mutable.

make

src new make(Obj? val := null)

Construct with initial value. Throw NotImmutableErr if initialized to a mutable value.

toStr

src virtual override Str toStr()

Return val.toStr

val

src Obj? val

The current value. Throw NotImmutableErr if set to a mutable value.