19 lines
501 B
Kotlin
19 lines
501 B
Kotlin
package net.sergeych.synctools
|
|
|
|
import java.util.concurrent.locks.ReentrantLock
|
|
|
|
/**
|
|
* Get the platform-depended implementation of a mutex-protected operation.
|
|
* JVM version uses a concealed object synchronization pattern (per-object monitor lock)
|
|
*/
|
|
actual fun ProtectedOp(): ProtectedOpImplementation = object : ProtectedOpImplementation {
|
|
private val access = ReentrantLock()
|
|
override fun lock() {
|
|
access.lock()
|
|
}
|
|
|
|
override fun unlock() {
|
|
access.unlock()
|
|
}
|
|
|
|
} |