You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* support wasmJs and wasmWasi targets.
* atomicfu-gradle-plugin does not transform wasm targets, and just provides an implementation dependency to the library.
* tested application of the plugin to the mpp project with both wasm targets.
---------
Co-authored-by: Svyatoslav Kuzmich <svyatoslav.kuzmich@jetbrains.com>
Co-authored-by: Margarita Bobova <margarita.bobova@jetbrains.com>
Co-authored-by: mvicsokolova <maria.sokolova@jetbrains.com>
Co-authored-by: mvicsokolova <82594708+mvicsokolova@users.noreply.github.com>
Co-authored-by: Filipp Zhinkin <filipp.zhinkin@gmail.com>
* Code it like a boxed value `atomic(0)`, but run it in production efficiently:
46
-
* as `java.util.concurrent.atomic.AtomicXxxFieldUpdater` on Kotlin/JVM
47
-
* as a plain unboxed value on Kotlin/JS
48
-
* Multiplatform: write common Kotlin code with atomics that compiles for Kotlin JVM, JS, and Native backends:
49
-
* Compile-only dependency for JVM and JS (no runtime dependencies)
50
-
* Compile and runtime dependency for Kotlin/Native
47
+
* For **JVM**: an atomic value is represented as a plain value atomically updated with `java.util.concurrent.atomic.AtomicXxxFieldUpdater` from the Java standard library.
48
+
* For **JS**: an atomic value is represented as a plain value.
49
+
* For **Native** and **Wasm**: an atomic value is not transformed, it remains boxed, and `kotlinx-atomicfu` library is used as a runtime dependency.
51
50
* Use Kotlin-specific extensions (e.g. inline `loop`, `update`, `updateAndGet` functions).
52
51
* Use atomic arrays, user-defined extensions on atomics and locks (see [more features](#more-features)).
53
52
*[Tracing operations](#tracing-operations) for debugging.
0 commit comments