withLock

suspend fun <T> withLock(key: K, block: suspend () -> T): T