kotlinx.coroutines v1.5.1 Release Notes
-
- ⚡️ Atomic
update
,getAndUpdate
, andupdateAndGet
operations ofMutableStateFlow
(#2720). Executor.asCoroutineDispatcher
implementation improvements (#2601):- If the target executor is
ScheduledExecutorService
, then itsschedule
API is used for time-related coroutine operations. RemoveOnCancelPolicy
is now part of the public contract.
- If the target executor is
- Introduced overloads for
Task.asDeferred
andTask.await
that acceptCancellationTokenSource
for bidirectional cancellation (#2527). - ⚡️ Reactive streams are updated to
1.0.3
(#2740). - 👻
CopyableThrowable
is allowed to modify the exception message during stacktrace recovery (#1931). - 🚀
CoroutineDispatcher.releaseInterceptedContinuation
is now afinal
method (#2785). - Closing a Handler underlying
Handler.asCoroutineDispatcher
now causes the dispatched coroutines to be canceled onDispatchers.IO (#2778)
. - ⚡️ Kotlin is updated to 1.5.20.
- 🛠 Fixed a spurious
ClassCastException
inreleaseInterceptedContinuation
andIllegalStateException
fromtryReleaseClaimedContinuation
(#2736, #2768). - 🛠 Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators (#2749).
- 🛠 Fixed linear stack usage for
CompletableFuture.asDeferred
when the target future has a long chain of listeners (#2730). - Any exceptions from
CoroutineDispatcher.isDispatchNeeded
are now considered as fatal and are propagated to the caller (#2733). - 🚚 Internal
DebugProbesKt
(used in the debugger implementation) are moved fromdebug
tocore
module.
- ⚡️ Atomic