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
true
if 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
true
if size() == 0- list
Obj?[] list
Gets 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# }