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
The old API is deprecated for removal, but the new API is based on the similar concepts (README), and the migration path is designed to be graceful: migration guide
Dispatchers
Introduced CoroutineDispatcher.limitedParallelism that allows obtaining a view of the original dispatcher with limited parallelism (#2919).
Dispatchers.IO.limitedParallelism usages ignore the bound on the parallelism level of Dispatchers.IO itself to avoid starvation (#2943).
Introduced new Dispatchers.shutdown method for containerized environments (#2558).
newSingleThreadContext and newFixedThreadPoolContext are promoted to delicate API (#2919).
Breaking changes
When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).
Dispatchers.Main is now used as the default source of time for delay and withTimeout when present(#2972).
To opt-out from this behaviour, kotlinx.coroutines.main.delay system property can be set to false.
Java target of coroutines build is now 8 instead of 6 (#1589).
Bug fixes and improvements
Kotlin is updated to 1.6.0.
Kotlin/Native new memory model is now supported in regular builds of coroutines conditionally depending on whether kotlin.native.binary.memoryModel is enabled (#2914).
Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2839 ).
transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan are promoted to stable API (#2971).
SharedFlow.subscriptionCount no longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription (#2488, #2863, #2871).
Flow exception transparency mechanism is improved to be more exception-friendly (#3017, #2860).
Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#2964).
SharedFlow.collect now returns Nothing (#2789, #2502).
FlowCollector is now fun interface, and corresponding inline extension is removed (#2790).
Deprecation level of all previously deprecated signatures is raised (#3024).
The version file is shipped with each JAR as a resource (#2941).
Unhandled exceptions on K/N are passed to the standard library function processUnhandledException (#2981).
A direct executor is used for Task callbacks in kotlinx-coroutines-play-services (#2990).
Metadata of coroutines artifacts leverages Gradle platform to have all versions of dependencies aligned (#2865).
Default CoroutineExceptionHandler is loaded eagerly and does not invoke ServiceLoader on its exception-handling path (#2552).
Fixed the R8 rules for ServiceLoader optimization (#2880).