[K/N] Stabilization of Atomics API
`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>
This commit is contained in:
@@ -8,6 +8,7 @@ val K = if (true) "K" else "A" // to avoid const init
|
||||
// FILE: main.kt
|
||||
|
||||
import kotlin.native.concurrent.*
|
||||
import kotlin.concurrent.AtomicInt
|
||||
|
||||
val sem = AtomicInt(0)
|
||||
|
||||
@@ -18,7 +19,7 @@ fun box() : String {
|
||||
mode = TransferMode.SAFE,
|
||||
{ },
|
||||
{
|
||||
sem.increment();
|
||||
sem.incrementAndGet();
|
||||
while (sem.value != 3) {}
|
||||
O
|
||||
}
|
||||
@@ -27,7 +28,7 @@ fun box() : String {
|
||||
mode = TransferMode.SAFE,
|
||||
{ },
|
||||
{
|
||||
sem.increment();
|
||||
sem.incrementAndGet();
|
||||
while (sem.value != 3) {}
|
||||
K
|
||||
}
|
||||
@@ -38,4 +39,4 @@ fun box() : String {
|
||||
w1.requestTermination().result
|
||||
w2.requestTermination().result
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user