package net.sergeych.tools import kotlinx.atomicfu.locks.SynchronizedObject import kotlinx.atomicfu.locks.synchronized actual fun ProtectedOp(): ProtectedOpImplementation = object : ProtectedOpImplementation { private val lock = SynchronizedObject() override fun invoke(f: () -> T): T { synchronized(lock) { return f() } } }