This repository was archived by the owner on Feb 23, 2023. It is now read-only.
Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-android to v1.6.4 #38
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.








This PR contains the following updates:
1.4.1->1.6.4Release Notes
Kotlin/kotlinx.coroutines
v1.6.4Compare Source
TestScope.backgroundScopefor launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287).kotlinx-coroutines-debughaving an incorrect reference tokotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).Publisher.awaitfunctions inkotlinx-coroutines-reactivenot ensuring that theSubscribermethods are invoked serially (#3360). Thank you, @EgorKulbachka!withTimeouton K/N with the new memory model (#3351).Throwableimplementations in the core library are serializable (#3328).v1.6.3Compare Source
v1.6.2Compare Source
ThreadLocalElementnot being correctly updated when the most outersuspendfunction was called directly withoutkotlinx.coroutines(#2930).runBlockingevent loop, and a benign data race inMutex(#3250, #3251).TestCoroutineContextis removed, which fixes thekotlinx-coroutines-testJPMS package being split betweenkotlinx-coroutines-coreandkotlinx-coroutines-test(#3218).0.17.2, which includes a more efficient and robust JS IR transformer (#3255).1.6.21, Gradle version is updated to7.4.2(#3281). Thanks, @wojtek-kalicinski!v1.6.1Compare Source
Dispatchers.Main.This behavior was introduced in 1.6.0 and then found inconvenient and erroneous (#3106, #3113).
CopyableThreadContextElementto solve issues uncovered after the initial release (#3227).ThreadLocalElementnot being properly updated in racy scenarios (#2930).CoroutineExceptionHandlerthat triggered ANR on some devices (#3180).CoroutineDispatcherto a Rx scheduler (#968, #548). Thanks @recheej!flowbuilder being retained in memory (#3197).limitedParallelismon K/N with new memory model throwingClassCastException(#3223).CoroutineContextis added to the exception printed to the defaultCoroutineExceptionHandlerto improve debuggability (#3153).Dispatchers.Defaultwas significantly reduced (#3137).kotlinx-coroutines-slf4jfrom 1.7.25 to 1.7.32.v1.6.0Compare Source
Note that this is a full changelog relative to the 1.5.2 version. Changelog relative to 1.6.0-RC3 can be found at the end.
kotlinx-coroutines-test rework
kotlinx-coroutines-testbecame a multiplatform library usable from K/JVM, K/JS, and K/N.).
Dispatchers
CoroutineDispatcher.limitedParallelismthat allows obtaining a view of the original dispatcher with limited parallelism (#2919).Dispatchers.IO.limitedParallelismusages ignore the bound on the parallelism level ofDispatchers.IOitself to avoid starvation (#2943).Dispatchers.shutdownmethod for containerized environments (#2558).newSingleThreadContextandnewFixedThreadPoolContextare promoted to delicate API (#2919).Breaking changes
futurebuilder no longer reports unhandled exceptions into the globalCoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).Mutex.onLockis deprecated for removal (#2794).Dispatchers.Mainis now used as the default source of time fordelayandwithTimeoutwhen present(#2972).kotlinx.coroutines.main.delaysystem property can be set tofalse.collectno longer resolves when used with a non-in-place argument of a functional type. This is a candidate for a fix, uncovered after 1.6.0, see #3107 for the additional details.Bug fixes and improvements
kotlin.native.binary.memoryModelis enabled (#2914).CopyableThreadContextElementfor mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).transformWhile,awaitClose,ProducerScope,merge,runningFold,runingReduce, andscanare promoted to stable API (#2971).SharedFlow.subscriptionCountno longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription (#2488, #2863, #2871).Flowexception transparency mechanism is improved to be more exception-friendly (#3017, #2860).flat*operators that leverage multiple coroutines is no longer propagated upstream (#2964).SharedFlow.collectnow returnsNothing(#2789, #2502).DisposableHandleis nowfun interface, and corresponding inline extension is removed (#2790).FlowCollectoris nowfun interface, and corresponding inline extension is removed (#3047).processUnhandledException(#2981).Taskcallbacks inkotlinx-coroutines-play-services(#2990).CoroutineExceptionHandleris loaded eagerly and does not invokeServiceLoaderon its exception-handling path (#2552).ServiceLoaderoptimization (#2880).SendChannel.trySendBlockingis now available on Kotlin/Native (#3064).ClassValuewhen available (#2997).Delayinterface is deprecated (#2979).CommonPoolis removed.@ExperimentalTimeis no longer needed for methods that useDuration(#3041).Changelog relative to version 1.6.0-RC3
v1.5.2Compare Source
onUndeliveredElementwas incorrectly called on a properly received elements on JS (#2826).Dispatchers.Defaulton React Native, it now fully relies onsetTimeoutinstead of stubprocess.nextTick. Thanks to @Legion2 (#2843).Muteximplementation (#2581).Muteximplementation is made completely lock-free as stated (#2590).v1.5.1Compare Source
update,getAndUpdate, andupdateAndGetoperations ofMutableStateFlow(#2720).Executor.asCoroutineDispatcherimplementation improvements (#2601):ScheduledExecutorService, then itsscheduleAPI is used for time-related coroutine operations.RemoveOnCancelPolicyis now part of the public contract.Task.asDeferredandTask.awaitthat acceptCancellationTokenSourcefor bidirectional cancellation (#2527).1.0.3(#2740).CopyableThrowableis allowed to modify the exception message during stacktrace recovery (#1931).CoroutineDispatcher.releaseInterceptedContinuationis now afinalmethod (#2785).Handler.asCoroutineDispatchernow causes the dispatched coroutines to be canceled onDispatchers.IO (#​2778).ClassCastExceptioninreleaseInterceptedContinuationandIllegalStateExceptionfromtryReleaseClaimedContinuation(#2736, #2768).CompletableFuture.asDeferredwhen the target future has a long chain of listeners (#2730).CoroutineDispatcher.isDispatchNeededare now considered as fatal and are propagated to the caller (#2733).DebugProbesKt(used in the debugger implementation) are moved fromdebugtocoremodule.v1.5.0Compare Source
Note that this is a full changelog relative to 1.4.3 version. Changelog relative to 1.5.0-RC can be found in the end.
Channels API
offer,poll, andsendBlockingmethods are deprecated, internalreceiveCatchingandonReceiveCatchingremoved,receiveOrNullandonReceiveOrNullare completely deprecated. Previously deprecatedSendChannel.isFulldeclaration is removed. Channel operators deprecated withERRORare nowHIDDEN.receiveCatching,onReceiveCatchingtrySend,tryReceive, andtrySendBlockingalong with the new result typeChannelResultare introduced. They provide better type safety, are less error-prone, and have a consistent future-proof naming scheme. The full rationale behind this change can be found here.BroadcastChannelandConflatedBroadcastChannelare marked asObsoleteCoroutinesApiin the favor orSharedFlowandStateFlow. The migration scheme can be found in their documentation. These classes will be deprecated in the next major release.callbackFlowandchannelFloware promoted to stable API.Reactive integrations
kotlinx-coroutines-rx2,kotlinx-coroutines-rx3,kotlinx-coroutines-reactive,kotlinx-coroutines-reactor, andkotlinx-coroutines-jdk9were revisited and promoted to stable (#2545).publishis no longer allowed to emitnullvalues (#2646).awaitSingleOr*functions onPublishertype are deprecated (#2591).MaybeSource.awaitis deprecated in the favor ofawaitSingle, additional lint functions forMonoare added in order to prevent ambiguousPublisherusages (#2628, #1587).ContextViewsupport inkotlinx-coroutines-reactor(#2575).MaybeSource.collectandMaybe.collectproperly finish when they are completed without a value (#2617).Other improvements
Flow.lastandFlow.lastOrNulloperators (#2246).Flow.runningFoldoperator (#2641).CoroutinesTimeoutrule for JUnit5 (#2197).JobandAbstractCoroutinewas reworked, resulting in smaller code size, less memory footprint, and better performance (#2513, #2512).CancellationExceptionfrom Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native (#2638).DelicateCoroutinesApiannotation that warns users about potential target API pitfalls and suggests studying API's documentation first. The only delicate API right now isGlobalScope(#2637).1.4.3whenkotlinx-coroutines-core.jartriggered IDEA debugger failure (#2619).ChildHandlerNodewith reusable continuations (#2564).Changelog relative to version 1.5.0-RC
emitAllcalled from cancelledonCompletionoperator (#2700).stateIn/shareInkeep strong reference to sharing job (#2557).TimeSourcetoAbstractTimeSourcedue to import issues (#2691).watchosX64target support for Kotlin/Native (#2524).v1.4.3Compare Source
General changes
ThreadContextElement(#985)ThreadContextElements are now restored in the opposite order from update (#2195)kotlinx-coroutines-reactorto3.4.1, thanks to @sokomishalov (#2432)callInPlacecontract added toReceiveChannel.consume(#941)CoroutineStart.UNDISPATCHEDpromoted to stable API (#1393)kotlinx.coroutinesare now released directly to MavenCentralDispatchedCoroutineby a fieldTimeSourcerenamed toSchedulerTimeSourceto prevent wildcard import issues (#2537)Bug fixes
Jobinterface (#2423)await/asDeferredforMinimalStageimplementations in jdk8 module (#2456)onUndeliveredElementwasn't called for unlimited channels (#2435)ListenableFuture.isCancelledreturned fromasListenableFuturecould have thrown an exception, thanks to @vadimsemenov (#2421)callbackFlowandproduceis properly cancelled when the channel was closed separately (#2506)v1.4.2Compare Source
StackOverflowErrorinJob.toStringwhenJobis observed in its intermediate state (#2371).Dispatchers.DefaultandDispatchers.IOin low-loaded mode (#2381).Channel.cancelinvocations (#2384).SharingStartedis nowfuninterface (#2397).SharedFlowto catch programmatic errors early (#2376).CoroutineStackFramein exception recovery that triggered failures of instrumented code (#2386).kotlinx-coroutines-javafx(#2360).Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.