stmTransaction

suspend fun <R> stmTransaction(block: STM.() -> R): R(source)

Executes multiple STM operations atomically.

A convenient alias for atomically that reads more naturally when coordinating state changes across multiple TVars.

stmTransaction {
counter.write(counter.read() + 1)
flag.write(true)
}

Return

the result of the transaction

Parameters

block

the STM transaction block