dev.tauri.choam.mcas

Members list

Concise view

Type members

Classlikes

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
final class HalfWordDescriptor[A]

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
sealed abstract class Mcas

Common interface for MCAS (i.e., k-CAS) implementations

Common interface for MCAS (i.e., k-CAS) implementations

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
object Mcas

Attributes

Companion:
class
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Mcas.type
object McasStatus

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Extension point for MCAS: an MCAS operation can be executed on any number of objects which conform to this interface.

Extension point for MCAS: an MCAS operation can be executed on any number of objects which conform to this interface.

However, the methods of this interface should only ever be called by the MCAS implementation. An MCAS operation is only safe and atomic if ALL reads and writes go through the MCAS implementation.

These are the low-level, primitive operations required by the MCAS implementation. They are easily implemented by, e.g., having an AtomicReference or similar. (For implementations of this interface, see SimpleMemoryLocation or the various Refs in the choam-core module.)

Some method names are prefixed by unsafe because these are necessarily side-effecting methods, and they're also very low-level. Other methods are not "unsafe", since they're mostly harmless.

Generally, this interface should not be used directly. Instead, use MCAS, or an even higher level abstraction.

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object NullMcas

This is a very limited MCAS implementation, which can only perform empty MCAS operations (i.e., not even reading is implemented). All other operations throw an UnsupportedOperationException.

This is a very limited MCAS implementation, which can only perform empty MCAS operations (i.e., not even reading is implemented). All other operations throw an UnsupportedOperationException.

It can be useful in special cases (for low-level optimization), when it is necessary to immediately execute a Rxn which is known not to actually do any k-CASes.

Attributes

Graph
Supertypes
class Mcas
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
class Mcas
class Object
trait Matchable
class Any
object Version

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Version.type