const classafConcurrent::SynchronizedList

sys::Obj
  afConcurrent::SynchronizedList

A List that provides fast reads and synchronised writes between threads, ensuring data integrity. Use when reads far out number the writes.

The list is stored in an AtomicRef through which all reads are made.

All write operations ( get, remove & clear ) are made via synchronized blocks ensuring no data is lost during race conditions. Writing makes a rw copy of the map and is thus a more expensive operation.

Note that all objects held in the map have to be immutable.

add

Source

@Operator
This add(Obj? val)

Add the specified item to the end of the list. Return this.

clear

Source

This clear()

Remove all key/value pairs from the map. Return this.

contains

Source

Bool contains(Obj? item)

Returns true if this list contains the specified item.

each

Source

Void each(|Obj?,Int c)

Call the specified function for every item in the list.

get

Source

@Operator
Obj? get(Int index)

Returns the item at the specified index. A negative index may be used to access an index from the end of the list.

isEmpty

Source

Bool isEmpty()

Return true if size() == 0

list

Source

Obj?[] list

Gets or sets a read-only copy of the backing map.

listType

Source

const Type listType := sys::Obj?#

Used to parameterize the backing list.

lock

Source

const Synchronized lock

The lock object should you need to synchronize on the List.

make

Source

new make(ActorPool actorPool, |This? f := null)

Creates a SynchronizedMap with the given ActorPool.

remove

Source

Obj? remove(Obj item)

Removes the specified item from the list, returning the removed item. If the item was not mapped then return null.

rw

Source

Obj?[] rw()

Get a read-write, mutable List instance with the same contents.

size

Source

Int size()

Get the number of values in the map.