SuspendLeftRight

class SuspendLeftRight<T : Any>(constructor: () -> T, readerParallelism: Int = readerParallelism(), switch: <Error class: unknown class> = atomic(LEFT), allEpochs: Array<<Error class: unknown class>> = Array(readerParallelism) { PaddedVolatileInt(0) }, readEpochCount: <Error class: unknown class> = atomic(0), readEpochIdx: <Error class: unknown class><Int> = threadLocal { readEpochCount.getAndIncrement() }, left: T = constructor(), right: T = constructor(), writeMutex: <Error class: unknown class> = Mutex())

Constructors

Link copied to clipboard
constructor(constructor: () -> T, readerParallelism: Int = readerParallelism(), switch: <Error class: unknown class> = atomic(LEFT), allEpochs: Array<<Error class: unknown class>> = Array(readerParallelism) { PaddedVolatileInt(0) }, readEpochCount: <Error class: unknown class> = atomic(0), readEpochIdx: <Error class: unknown class><Int> = threadLocal { readEpochCount.getAndIncrement() }, left: T = constructor(), right: T = constructor(), writeMutex: <Error class: unknown class> = Mutex())

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
inline suspend fun <V> mutate(crossinline update: (T) -> V): V
Link copied to clipboard
inline fun <V> read(action: (T) -> V): V