1 @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") 2 3 package kotlinx.atomicfu.locks 4 5 import kotlin.internal.InlineOnly 6 7 public actual typealias SynchronizedObject = Any 8 9 @InlineOnly reentrantLocknull10public actual inline fun reentrantLock() = ReentrantLock() 11 12 public actual typealias ReentrantLock = java.util.concurrent.locks.ReentrantLock 13 14 @InlineOnly 15 public actual inline fun <T> ReentrantLock.withLock(block: () -> T): T { 16 lock() 17 try { 18 return block() 19 } finally { 20 unlock() 21 } 22 } 23 24 @InlineOnly synchronizednull25public actual inline fun <T> synchronized(lock: SynchronizedObject, block: () -> T): T = 26 kotlin.synchronized(lock, block)