commonMain.internal.Concurrent.common.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kotlinx-coroutines-core Show documentation
Show all versions of kotlinx-coroutines-core Show documentation
Coroutines support libraries for Kotlin
/*
* Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.coroutines.internal
/**
* Special kind of list intended to be used as collection of subscribers in `ArrayBroadcastChannel`
* On JVM it's CopyOnWriteList and on JS it's MutableList.
*
* Note that this alias is intentionally not named as CopyOnWriteList to avoid accidental misusage outside of ArrayBroadcastChannel
*/
internal typealias SubscribersList = MutableList
internal expect fun subscriberList(): SubscribersList
internal expect class ReentrantLock() {
fun tryLock(): Boolean
fun unlock(): Unit
}
internal expect inline fun ReentrantLock.withLock(action: () -> T): T
internal expect fun identitySet(expectedSize: Int): MutableSet
@ExperimentalMultiplatform
@OptionalExpectation
internal expect annotation class SharedImmutable()