75b4469757
`AtomicInt`, `AtomicLong`, `AtomicReference` and `AtomicNativePtr` classes were moved to `kotlin.concurrent` package. The corresponding classes from `kotlin.native.concurrent` were deprecated with warning since Kotlin 1.9.
In order to prepare for further commonization of Atomics API the following changes were made:
* `kotlin.concurrent.AtomicInt`:
* `increment(): Unit` and `decrement(): Unit` methods were deprecated with error
* New methods were added: `incrementAndGet(): Int` , `decrementAndGet(): Int`, `getAndIncrement(): Int`, `getAndDecrement(): Int`, `getAndSet(newValue: Int): Int`
* `kotlin.concurrent.AtomicLong`:
* `increment(): Unit` and `decrement(): Unit` methods were deprecated with error
* New methods were added: `incrementAndGet(): Long`, `decrementAndGet(): Long`, `getAndIncrement(): Long`, `getAndDecrement(): Long`, `getAndSet(newValue: Long): Long`
* Deprecated `AtomicLong()` constructor with default parameter value
* For all atomic classes `compareAndSwap` method was renamed to `compareAndExchange`
See KT-58074 for more details.
Merge-request: KT-MR-9272
Merged-by: Maria Sokolova <maria.sokolova@jetbrains.com>
26 lines
573 B
Kotlin
Vendored
26 lines
573 B
Kotlin
Vendored
// TARGET_BACKEND: NATIVE
|
|
// test is disabled now because of https://youtrack.jetbrains.com/issue/KT-55426
|
|
// IGNORE_BACKEND: NATIVE
|
|
|
|
// MODULE: lib
|
|
// FILE: lib.kt
|
|
@file:OptIn(kotlin.ExperimentalStdlibApi::class)
|
|
|
|
import kotlin.native.concurrent.*
|
|
import kotlin.concurrent.*
|
|
|
|
class Box(@Volatile var value: String)
|
|
|
|
// MODULE: main(lib)
|
|
// FILE: main.kt
|
|
|
|
@file:Suppress("INVISIBLE_MEMBER")
|
|
|
|
import kotlin.native.concurrent.*
|
|
import kotlin.concurrent.*
|
|
|
|
fun box() : String {
|
|
val o = "O"
|
|
val x = Box(o)
|
|
return x::value.compareAndExchangeField(o, "K") + x.value
|
|
} |