Suspend Left Right
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())