All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.internal.Concurrent.common.kt Maven / Gradle / Ivy

There is a newer version: 1.9.0
Show newest version
/*
 * 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()




© 2015 - 2024 Weber Informatics LLC | Privacy Policy