1 package kotlinx.atomicfu.locks
2 
3 import kotlinx.atomicfu.REENTRANT_LOCK
4 
5 @Suppress("ACTUAL_CLASSIFIER_MUST_HAVE_THE_SAME_MEMBERS_AS_NON_FINAL_EXPECT_CLASSIFIER_WARNING")
6 public actual typealias SynchronizedObject = Any
7 
8 @kotlinx.atomicfu.OptionalJsName(REENTRANT_LOCK)
9 public val Lock = ReentrantLock()
10 
11 @Suppress("NOTHING_TO_INLINE")
reentrantLocknull12 public actual inline fun reentrantLock() = Lock
13 
14 @Suppress("NOTHING_TO_INLINE")
15 public actual class ReentrantLock {
16     actual inline fun lock(): Unit {}
17     actual inline fun tryLock() = true
18     actual inline fun unlock(): Unit {}
19 }
20 
withLocknull21 public actual inline fun <T> ReentrantLock.withLock(block: () -> T) = block()
22 
23 public actual inline fun <T> synchronized(lock: SynchronizedObject, block: () -> T): T = block()
24