blob: ae29c51a437899a881e8b9180c3f1c73332e6d11 [file] [log] [blame]
Roman Elizarov1f74a2d2018-06-29 19:19:45 +03001/*
2 * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3 */
4
Vsevolod Tolstopyatov96191342018-04-20 18:13:33 +03005package kotlinx.coroutines.experimental.internal
6
7import java.util.concurrent.*
8import kotlin.concurrent.withLock as withLockJvm
9
Roman Elizarov11d6b5b2018-04-26 10:11:50 +030010internal actual fun <E> subscriberList(): MutableList<E> = CopyOnWriteArrayList<E>()
Vsevolod Tolstopyatov96191342018-04-20 18:13:33 +030011
Roman Elizarov11d6b5b2018-04-26 10:11:50 +030012@Suppress("ACTUAL_WITHOUT_EXPECT")
13internal actual typealias ReentrantLock = java.util.concurrent.locks.ReentrantLock
Vsevolod Tolstopyatov96191342018-04-20 18:13:33 +030014
Roman Elizarov11d6b5b2018-04-26 10:11:50 +030015internal actual inline fun <T> ReentrantLock.withLock(action: () -> T) = this.withLockJvm(action)