dev.tauri.choam.mcas

Members list

Type members

Classlikes

final class Descriptor

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Descriptor

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Descriptor.type
final class HalfWordDescriptor[A]

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed trait Mcas

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

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

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object Mcas

Attributes

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

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
McasStatus.type
trait MemoryLocation[A]

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
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
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

Supertypes
trait Mcas
class Object
trait Matchable
class Any
Self type
NullMcas.type

Attributes

Supertypes
trait Mcas
class Object
trait Matchable
class Any
object Version

Attributes

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