const classafConcurrent::AtomicList
sys::Obj afConcurrent::AtomicList
@Js
A List that provides fast reads and lightweight writes between threads.
The list is stored in an AtomicRef through which all reads are made. Writing makes a rw copy of the list and is thus a more expensive operation.
CAUTION: Write operations (
add,remove&clear) are not synchronised. This makes them lightweight but also susceptible to data-loss during race conditions. This may be acceptable for caching situations where values are easily re-calculated.
All values held in the list must be immutable.
- add
Add the specified item to the end of the list. Return this.
- clear
This clear()Remove all key/value pairs from the map. Return this.
- contains
Returns
trueif this list contains the specified item.- each
Call the specified function for every item in the list.
- get
Returns the item at the specified index. A negative index may be used to access an index from the end of the list.
- isEmpty
Bool isEmpty()Return
trueif size() == 0- list
Obj?[] listGets or sets a read-only copy of the backing map.
- remove
Removes the specified item from the list, returning the removed item. If the item was not mapped then return
null.- rw
Obj?[] rw()Get a read-write, mutable List instance with the same contents.
- size
Int size()Get the number of values in the map.
- valType
const Type valType := sys::Obj?#Used to parameterize the backing list.
AtomicList() { it.valType = Str# }