This experience cannot be full without kotlinx.coroutines, but unfortunately special support is required. It forces us to support "one more fork" of coroutines, but what's more important -- it forces users to depend on dev builds of unspecified quality, and also somehow to be aware of their existense.
My proposal is to leverage isExperimentalMM stdlib API (available only in 1.6.0+) and merge the support of the new MM in the mainline, enabling new "sharing" behaviour (and also implementations of Dispatchers.Main, Dispatchers.Default and new*Context()) conditionally. If the new MM is disabled, we can fallback to our single-threaded mode.
The text was updated successfully, but these errors were encountered:
* Support of new K/N memory model
* Dispatchers.Default backed by a pool of workers on Linux and by global_queue on iOS-like
* Implementation of Dispatchers.Main that uses the main queue on iOS and default dispatcher on other platforms (Kotlin#2858)
* Introduced newSingleThreadDispatcher and newFixedThreadPoolDispatcher
* Use proper reentrant locking and CoW arrays on new memory model, make TestBase _almost_ race-free
* More thread-safety in Native counterpart and one more test from native-mt
* Source-set sharing for tests shared between JVM and K/N
* Wrap Obj-C interop into autorelease pool to avoid memory leaks
Co-authored-by: dkhalanskyjb <firstname.lastname@example.org>