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

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

There is a newer version: 1.9.0
Show newest version
package kotlinx.coroutines.internal

import kotlinx.coroutines.*
import kotlin.contracts.*

/**
 * @suppress **This an internal API and should not be used from general code.**
 */
@InternalCoroutinesApi
public expect open class SynchronizedObject() // marker abstract class

/**
 * @suppress **This an internal API and should not be used from general code.**
 */
@InternalCoroutinesApi
public expect inline fun  synchronizedImpl(lock: SynchronizedObject, block: () -> T): T

/**
 * @suppress **This an internal API and should not be used from general code.**
 */
@OptIn(ExperimentalContracts::class)
@InternalCoroutinesApi
public inline fun  synchronized(lock: SynchronizedObject, block: () -> T): T {
    contract {
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    }
    return synchronizedImpl(lock, block)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy