-
Notifications
You must be signed in to change notification settings - Fork 8
Update coroutines_version to v1.9.0 - autoclosed #24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8139e8f to
31527c4
Compare
31527c4 to
8052ea1
Compare
8052ea1 to
f25cb17
Compare
f25cb17 to
cf5ecea
Compare
cf5ecea to
45b5b5d
Compare
45b5b5d to
a8b742b
Compare
a8b742b to
13685e9
Compare
13685e9 to
3aa92e6
Compare
3aa92e6 to
41e8162
Compare
41e8162 to
def90e6
Compare
def90e6 to
7ec811c
Compare
7ec811c to
5df5fcf
Compare
5df5fcf to
243714a
Compare
243714a to
d982c3f
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
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.2->1.9.01.4.2->1.9.0Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)
v1.9.0Compare Source
Features
limitedParallelismnow optionally accepts the name of the dispatcher view for easier debugging (#4023).Dispatchers.IOon the JVM when other standard dispatchers are accessed (#4166). Thanks, @metalhead8816!Flow<T>.chunked(size: Int): Flow<List<T>>operator that groups emitted values into groups of the given size (#1290).AutoCloseablenow (#4123).Fixes
hasNexton aChannel's iterator is idempotent (#4065). Thanks, @gitpaxultek!CoroutineScope()created without an explicit dispatcher usesDispatchers.Defaulton Native (#4074). Thanks, @whyoleg!Dispatchers.Mainfrom initializing when the Firebase dependency is used (#3914).runBlocking(#4134).MutextoSemaphore(#4176).asDeferredon aFuturemany times (#4156).Deprecations and promotions
BroadcastChannel-based API (#4197).kotlinx-coroutines-testAPI (#4198).Job.cancelFutureOnCompletion(#4173).CoroutineDispatcher.limitedParallelismto stable (#3864).CoroutineStart.ATOMICfromExperimentalCoroutinesApitoDelicateCoroutinesApi(#4169).CancellableContinuation.resumewith anonCancellationlambda to stable, providing extra arguments to the lambda (#4088).InternalForInheritanceCoroutinesApiopt-in (#3770).ExperimentalForInheritanceCoroutinesApiopt-in (#3770).Other
CoroutineStartandChannel-based API (#4147, #4148, #4167). Thanks, @globsterg!Job(#4053).v1.8.1Compare Source
@ExperimentalTimeannotation from usages ofTimeSource(#4046). Thanks, @hfhbd!NullPointerExceptionwhen setting theStateFlowvalue on old Android devices (#3820).kotlin.random.Randomas part ofDispatchers.DefaultandDispatchers.IOinitialization (#4051).Flow.timeoutthrows the exception with which the channel was closed (#4071).Changelog relative to version 1.8.1-Beta
Flow.timeoutthrows the exception with which the channel was closed (#4071).v1.8.0Compare Source
Dispatchers.Main != Dispatchers.Main.immediate(#3545, #3963).Flowoperators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)kotlinx-coroutines-debugis published with the correct Java 9 module info (#3944).kotlinx-coroutines-debugno longer requires manually settingDebugProbes.enableCoroutineCreationStackTracestofalse, it's the default (#3783).kotlinx-coroutines-test: set the default timeout ofrunTestto 60 seconds, added the ability to configure it on the JVM with thekotlinx.coroutines.test.default_timeout=10s(#3800).kotlinx-coroutines-test: fixed a bug that could lead to not all uncaught exceptions being reported after some tests failed (#3800).delay(Duration)rounds nanoseconds up to whole milliseconds and not down (#3920). Thanks @kevincianfarini!Dispatchers.Defaultand the default thread for background work are guaranteed to use the same context classloader as the object containing it them (#3832).SharedFlow.collectsuspends for the first time, it's registered as a subscriber for thatSharedFlow(#3885). Before, it was also true, but not documented.withLockon JS (#3881). Thanks @CLOVIS-AI!Changelog relative to version 1.8.0-RC2
kotlinx-coroutines-debugno longer requires manually settingDebugProbes.enableCoroutineCreationStackTracestofalse, it's the default (#3783).Flowoperators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)v1.7.3Compare Source
v1.7.2Compare Source
Bug fixes and improvements
CopyableThreadContextElementnow properly copies an element when crossing the coroutine boundary inflowOn(#3787). Thanks @wanyingd1996!newSingleThreadContextfrom closing (#3768).MutexduringtryLock/unlocksequence with owners is fixed (#3745).v1.7.1Compare Source
Bug fixes and improvements
runTestis restored (#3673)onUndeliveredElementnow allocate less memory (#3646)v1.7.0Compare Source
Core API significant improvements
Channelimplementation with significant performance improvements across the API (#3621).selectoperator implementation: faster, more lightweight, and more robust (#3020).MutexandSemaphorenow share the same underlying data structure (#3020).Dispatchers.IOis added to K/N (#3205)newFixedThreadPoolandDispatchers.Defaultimplementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-testrework:timeoutparameter torunTestfor the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).withTimeoutexception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler,runTest, andTestScopeAPI are promoted to stable (#3622).runTestnow also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).Breaking changes
kotlinx-coroutines-coreandkotlinx-coroutines-jdk8artifacts were merged into a single artifact (#3268).\bsymbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActivereturnstruefor contexts without any job in them (#3300).Bug fixes and improvements
JavaFxversion is updated to 17.0.2 inkotlinx-coroutines-javafx(#3671)..BroadcastChanneland all the corresponding API are deprecated (#2680).Dispatchers.Defaultis backed by the number of threads equal to the number of available cores (#3366).Job.parentAPI (#3201).TestSchedulerleaked cancelled jobs (#3398).TestScope.timeSourcenow provides comparable time marks (#3617). Thanks @hfhbd!withTimeouthandles were preserved in JS runtime (#3440).awaitFrameonly awaits a single frame when used from the main looper (#3432). Thanks @pablobaxter!Class-Pathattribute was removed fromkotlinx-coroutines-debug.jarmanifest (#3361).updateThreadContextoperated on the parent context (#3411).Flow.filterIsInstanceextension (#3240).Dispatchers.Defaultthread name prefixes are now configurable with system property (#3231).Flow.timeoutoperator as@FlowPreview(#2624). Thanks @pablobaxter!futurebuilder in case of exceptions (#3475). Thanks @He-Pin!Mono.awaitSingleOrNullnow waits for theonCompletesignal (#3487).Channel.isClosedForSendandChannel.isClosedForReceiveare promoted from experimental to delicate (#3448).EventLoop(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)no longer creates an additional wrapper (#3442). Thanks @dovchinnikov!@FlowPreviewand@ExperimentalCoroutinesApiare promoted to experimental and stable respectively (#3542, #3097, #3548).Dispatchers.DefaultandDispatchers.IO(#3416, #3418).suspendCancellableCoroutineReusablemight have hanged (#3613).CoroutineExceptionHandleris no longer invoked in case of unprocessedfuturefailure (#3452).withContextoperator (#3592).DebugProbes(#3527).CoroutineDispatcher.asExecutor()runs tasks without dispatching if the dispatcher is unconfined (#3683). Thanks @odedniv!SharedFlow.toMutableListandSharedFlow.toSetlints are introduced (#3706).Channel.invokeOnCloseis promoted to stable API (#3358).Dispatchers.DefaultandDispatchers.IOduring the startup phase (#3652).Dispatchers.Default(#3642).limitedParallelismto perform dispatches even after the underlying dispatcher was closed (#3672).causewas selected (#3714).Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md
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).v1.5.2Compare Source
onUndeliveredElementwas incorrectly called on 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)callsInPlacecontract 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)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 these updates again.
This PR was generated by Mend Renovate. View the repository job log.