Roman Elizarov | 1f74a2d | 2018-06-29 19:19:45 +0300 | [diff] [blame^] | 1 | /* |
| 2 | * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. |
| 3 | */ |
| 4 | |
Vsevolod Tolstopyatov | 9619134 | 2018-04-20 18:13:33 +0300 | [diff] [blame] | 5 | package kotlinx.coroutines.experimental.internal |
| 6 | |
| 7 | import java.util.concurrent.* |
| 8 | import kotlin.concurrent.withLock as withLockJvm |
| 9 | |
Roman Elizarov | 11d6b5b | 2018-04-26 10:11:50 +0300 | [diff] [blame] | 10 | internal actual fun <E> subscriberList(): MutableList<E> = CopyOnWriteArrayList<E>() |
Vsevolod Tolstopyatov | 9619134 | 2018-04-20 18:13:33 +0300 | [diff] [blame] | 11 | |
Roman Elizarov | 11d6b5b | 2018-04-26 10:11:50 +0300 | [diff] [blame] | 12 | @Suppress("ACTUAL_WITHOUT_EXPECT") |
| 13 | internal actual typealias ReentrantLock = java.util.concurrent.locks.ReentrantLock |
Vsevolod Tolstopyatov | 9619134 | 2018-04-20 18:13:33 +0300 | [diff] [blame] | 14 | |
Roman Elizarov | 11d6b5b | 2018-04-26 10:11:50 +0300 | [diff] [blame] | 15 | internal actual inline fun <T> ReentrantLock.withLock(action: () -> T) = this.withLockJvm(action) |