DataStore-sample
DataStore-sample copied to clipboard
Update coroutines_version to v1.9.0
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| org.jetbrains.kotlinx:kotlinx-coroutines-core | 1.4.2 -> 1.9.0 |
||||
| org.jetbrains.kotlinx:kotlinx-coroutines-android | 1.4.2 -> 1.9.0 |
Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)
v1.9.0
Features
- Wasm/WASI target support (#4064). Thanks, @igoriakovlev!
limitedParallelismnow optionally accepts the name of the dispatcher view for easier debugging (#4023).- No longer initialize
Dispatchers.IOon the JVM when other standard dispatchers are accessed (#4166). Thanks, @metalhead8816! - Introduced the
Flow<T>.chunked(size: Int): Flow<List<T>>operator that groups emitted values into groups of the given size (#1290). - Closeable dispatchers are instances of
AutoCloseablenow (#4123).
Fixes
- Calling
hasNexton aChannel's iterator is idempotent (#4065). Thanks, @gitpaxultek! CoroutineScope()created without an explicit dispatcher usesDispatchers.Defaulton Native (#4074). Thanks, @whyoleg!- Fixed a bug that prevented non-Android
Dispatchers.Mainfrom initializing when the Firebase dependency is used (#3914). - Ensured a more intuitive ordering of tasks in
runBlocking(#4134). - Forbid casting a
MutextoSemaphore(#4176). - Worked around a stack overflow that may occur when calling
asDeferredon aFuturemany times (#4156).
Deprecations and promotions
- Advanced the deprecation levels for
BroadcastChannel-based API (#4197). - Advanced the deprecation levels for the old
kotlinx-coroutines-testAPI (#4198). - Deprecated
Job.cancelFutureOnCompletion(#4173). - Promoted
CoroutineDispatcher.limitedParallelismto stable (#3864). - Promoted
CoroutineStart.ATOMICfromExperimentalCoroutinesApitoDelicateCoroutinesApi(#4169). - Promoted
CancellableContinuation.resumewith anonCancellationlambda to stable, providing extra arguments to the lambda (#4088). - Marked the classes and interfaces that are not supposed to be inherited from with the new
InternalForInheritanceCoroutinesApiopt-in (#3770). - Marked the classes and interfaces inheriting from which is not stable with the new
ExperimentalForInheritanceCoroutinesApiopt-in (#3770).
Other
- Kotlin was updated to 2.0 (#4137).
- Reworked the documentation for
CoroutineStartandChannel-based API (#4147, #4148, #4167). Thanks, @globsterg! - Simplified the internal implementation of
Job(#4053). - Small tweaks, fixes, and documentation improvements.
v1.8.1
- Remove the
@ExperimentalTimeannotation from usages ofTimeSource(#4046). Thanks, @hfhbd! - Introduce a workaround for an Android bug that caused an occasional
NullPointerExceptionwhen setting theStateFlowvalue on old Android devices (#3820). - No longer use
kotlin.random.Randomas part ofDispatchers.DefaultandDispatchers.IOinitialization (#4051). Flow.timeoutthrows the exception with which the channel was closed (#4071).- Small tweaks and documentation fixes.
Changelog relative to version 1.8.1-Beta
Flow.timeoutthrows the exception with which the channel was closed (#4071).- Small documentation fixes.
v1.8.0
- Implement the library for the Web Assembly (Wasm) for JavaScript (#3713). Thanks @igoriakovlev!
- Major Kotlin version update: was 1.8.20, became 1.9.21.
- On Android, ensure that
Dispatchers.Main != Dispatchers.Main.immediate(#3545, #3963). - Fixed a bug that caused
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).- It is guaranteed that by the time
SharedFlow.collectsuspends for the first time, it's registered as a subscriber for thatSharedFlow(#3885). Before, it was also true, but not documented. - Atomicfu version is updated to 0.23.1, and Kotlin/Native atomic transformations are enabled, reducing the footprint of coroutine-heavy code (#3954).
- Added a workaround for miscompilation of
withLockon JS (#3881). Thanks @CLOVIS-AI! - Small tweaks and documentation fixes.
Changelog relative to version 1.8.0-RC2
kotlinx-coroutines-debugno longer requires manually settingDebugProbes.enableCoroutineCreationStackTracestofalse, it's the default (#3783).- Fixed a bug that caused
Flowoperators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038) - Small documentation fixes.
v1.7.3
- Disabled the publication of the multiplatform library metadata for the old (1.6 and earlier) KMP Gradle plugin (#3809).
- Fixed a bug introduced in 1.7.2 that disabled the coroutine debugger in IDEA (#3822).
v1.7.2
Bug fixes and improvements
- Coroutines debugger no longer keeps track of coroutines with empty coroutine context (#3782).
CopyableThreadContextElementnow properly copies an element when crossing the coroutine boundary inflowOn(#3787). Thanks @wanyingd1996!- Coroutine timeouts no longer prevent K/N
newSingleThreadContextfrom closing (#3768). - A non-linearizability in
MutexduringtryLock/unlocksequence with owners is fixed (#3745). - Atomicfu version is updated to 0.21.0.
v1.7.1
Bug fixes and improvements
- Special characters in coroutine names in JSON dumps are supported (#3747)
- The binary compatibility of the experimental overload of
runTestis restored (#3673) - Channels that don't use
onUndeliveredElementnow allocate less memory (#3646)
v1.7.0
Core API significant improvements
- New
Channelimplementation with significant performance improvements across the API (#3621). - New
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:- Add the
timeoutparameter torunTestfor the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603). - The
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).
- Add the
Breaking changes
- Old K/N memory model is no longer supported (#3375).
- New generic upper bounds were added to reactive integration API where the language since 1.8.0 dictates (#3393).
kotlinx-coroutines-coreandkotlinx-coroutines-jdk8artifacts were merged into a single artifact (#3268).- Artificial stackframes in stacktrace recovery no longer contain the
\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
- Kotlin version is updated to 1.8.20
- Atomicfu version is updated to 0.20.2.
JavaFxversion is updated to 17.0.2 inkotlinx-coroutines-javafx(#3671)..- JPMS is supported (#2237). Thanks @lion7!
BroadcastChanneland all the corresponding API are deprecated (#2680).- Added all supported K/N targets (#3601, #812, #855).
- K/N
Dispatchers.Defaultis backed by the number of threads equal to the number of available cores (#3366). - Fixed an issue where some coroutines' internal exceptions were not properly serializable (#3328).
- Introduced
Job.parentAPI (#3201). - Fixed a bug when
TestSchedulerleaked cancelled jobs (#3398). TestScope.timeSourcenow provides comparable time marks (#3617). Thanks @hfhbd!- Fixed an issue when cancelled
withTimeouthandles were preserved in JS runtime (#3440). - Ensure
awaitFrameonly awaits a single frame when used from the main looper (#3432). Thanks @pablobaxter! - Obsolete
Class-Pathattribute was removed fromkotlinx-coroutines-debug.jarmanifest (#3361). - Fixed a bug when
updateThreadContextoperated on the parent context (#3411). - Added new
Flow.filterIsInstanceextension (#3240). Dispatchers.Defaultthread name prefixes are now configurable with system property (#3231).- Added
Flow.timeoutoperator as@FlowPreview(#2624). Thanks @pablobaxter! - Improved the performance of the
futurebuilder in case of exceptions (#3475). Thanks @He-Pin! Mono.awaitSingleOrNullnow waits for theonCompletesignal (#3487).Channel.isClosedForSendandChannel.isClosedForReceiveare promoted from experimental to delicate (#3448).- Fixed a data race in native
EventLoop(#3547). Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)no longer creates an additional wrapper (#3442). Thanks @dovchinnikov!- Various
@FlowPreviewand@ExperimentalCoroutinesApiare promoted to experimental and stable respectively (#3542, #3097, #3548). - Performance improvements in
Dispatchers.DefaultandDispatchers.IO(#3416, #3418). - Fixed a bug when internal
suspendCancellableCoroutineReusablemight have hanged (#3613). - Introduced internal API to process events in the current system dispatcher (#3439).
- Global
CoroutineExceptionHandleris no longer invoked in case of unprocessedfuturefailure (#3452). - Performance improvements and reduced thread-local pressure for the
withContextoperator (#3592). - Improved performance of
DebugProbes(#3527). - Fixed a bug when the coroutine debugger might have detected the state of a coroutine incorrectly (#3193).
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).- Improved lock contention in
Dispatchers.DefaultandDispatchers.IOduring the startup phase (#3652). - Fixed a bug that led to threads oversubscription in
Dispatchers.Default(#3642). - Fixed a bug that allowed
limitedParallelismto perform dispatches even after the underlying dispatcher was closed (#3672). - Fixed a bug that prevented stacktrace recovery when the exception's constructor from
causewas selected (#3714). - Improved sanitizing of stracktrace-recovered traces (#3714).
- Introduced an internal flag to disable uncaught exceptions reporting in tests as a temporary migration mechanism (#3736).
- Various documentation improvements and fixes.
Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md
v1.6.4
- Added
TestScope.backgroundScopefor launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287). - Fixed the POM of
kotlinx-coroutines-debughaving an incorrect reference tokotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334). - Fixed the
Publisher.awaitfunctions inkotlinx-coroutines-reactivenot ensuring that theSubscribermethods are invoked serially (#3360). Thank you, @EgorKulbachka! - Fixed a memory leak in
withTimeouton K/N with the new memory model (#3351). - Added the guarantee that all
Throwableimplementations in the core library are serializable (#3328). - Moved the documentation to https://kotlinlang.org/api/kotlinx.coroutines/ (#3342).
- Various documentation improvements.
v1.6.3
- Updated atomicfu version to 0.17.3 (#3321), fixing the projects using this library with JS IR failing to build (#3305).
v1.6.2
- Fixed a bug with
ThreadLocalElementnot being correctly updated when the most outersuspendfunction was called directly withoutkotlinx.coroutines(#2930). - Fixed multiple data races: one that might have been affecting
runBlockingevent loop, and a benign data race inMutex(#3250, #3251). - Obsolete
TestCoroutineContextis removed, which fixes thekotlinx-coroutines-testJPMS package being split betweenkotlinx-coroutines-coreandkotlinx-coroutines-test(#3218). - Updated the ProGuard rules to further shrink the size of the resulting DEX file with coroutines (#3111, #3263). Thanks, @agrieve!
- Atomicfu is updated to
0.17.2, which includes a more efficient and robust JS IR transformer (#3255). - Kotlin is updated to
1.6.21, Gradle version is updated to7.4.2(#3281). Thanks, @wojtek-kalicinski! - Various documentation improvements.
v1.6.1
- Rollback of time-related functions dispatching on
Dispatchers.Main. This behavior was introduced in 1.6.0 and then found inconvenient and erroneous (#3106, #3113). - Reworked the newly-introduced
CopyableThreadContextElementto solve issues uncovered after the initial release (#3227). - Fixed a bug with
ThreadLocalElementnot being properly updated in racy scenarios (#2930). - Reverted eager loading of default
CoroutineExceptionHandlerthat triggered ANR on some devices (#3180). - New API to convert a
CoroutineDispatcherto a Rx scheduler (#968, #548). Thanks @recheej! - Fixed a memory leak with the very last element emitted from
flowbuilder being retained in memory (#3197). - Fixed a bug with
limitedParallelismon K/N with new memory model throwingClassCastException(#3223). CoroutineContextis added to the exception printed to the defaultCoroutineExceptionHandlerto improve debuggability (#3153).- Static memory consumption of
Dispatchers.Defaultwas significantly reduced (#3137). - Updated slf4j version in
kotlinx-coroutines-slf4jfrom 1.7.25 to 1.7.32.
v1.6.0
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.- Its API was completely reworked to address long-standing issues with consistency, structured concurrency and correctness (#1203, #1609, #2379, #1749, #1204, #1390, #1222, #1395, #1881, #1910, #1772, #1626, #1742, #2082, #2102, #2405, #2462 ).
- 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.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).- Introduced new
Dispatchers.shutdownmethod for containerized environments (#2558). newSingleThreadContextandnewFixedThreadPoolContextare promoted to delicate API (#2919).
Breaking changes
- When racing with cancellation, the
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).- To opt-out from this behaviour,
kotlinx.coroutines.main.delaysystem property can be set tofalse.
- To opt-out from this behaviour,
- Java target of coroutines build is now 8 instead of 6 (#1589).
- Source-breaking change: extension
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 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.memoryModelis enabled (#2914). - Introduced
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).- Cancellation from
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).- 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
Taskcallbacks inkotlinx-coroutines-play-services(#2990). - Metadata of coroutines artifacts leverages Gradle platform to have all versions of dependencies aligned (#2865).
- Default
CoroutineExceptionHandleris loaded eagerly and does not invokeServiceLoaderon its exception-handling path (#2552). - Fixed the R8 rules for
ServiceLoaderoptimization (#2880). - Fixed BlockHound integration false-positives (#2894, #2866, #2937).
- Fixed the exception handler being invoked several times on Android, thanks to @1zaman (#3056).
SendChannel.trySendBlockingis now available on Kotlin/Native (#3064).- The exception recovery mechanism now uses
ClassValuewhen available (#2997). - JNA is updated to 5.9.0 to support Apple M1 (#3001).
- Obsolete method on internal
Delayinterface is deprecated (#2979). - Support of deprecated
CommonPoolis removed. @ExperimentalTimeis no longer needed for methods that useDuration(#3041).- JDK 1.6 is no longer required for building the project (#3043).
- New version of Dokka is used, fixing the memory leak when building the coroutines and providing brand new reference visuals (https://kotlin.github.io/kotlinx.coroutines/) (#3051, #3054).
v1.5.2
- Kotlin is updated to 1.5.30.
- New native targets for Apple Silicon are introduced.
- Fixed a bug when
onUndeliveredElementwas incorrectly called on properly received elements on JS (#2826). - Fixed
Dispatchers.Defaulton React Native, it now fully relies onsetTimeoutinstead of stubprocess.nextTick. Thanks to @Legion2 (#2843). - Optimizations of
Muteximplementation (#2581). Muteximplementation is made completely lock-free as stated (#2590).- Various documentation and guides improvements. Thanks to @MasoodFallahpoor and @Pihanya.
v1.5.1
- Atomic
update,getAndUpdate, andupdateAndGetoperations ofMutableStateFlow(#2720). Executor.asCoroutineDispatcherimplementation improvements (#2601):- If the target executor is
ScheduledExecutorService, then itsscheduleAPI is used for time-related coroutine operations. RemoveOnCancelPolicyis now part of the public contract.
- If the target executor is
- Introduced overloads for
Task.asDeferredandTask.awaitthat acceptCancellationTokenSourcefor bidirectional cancellation (#2527). - Reactive streams are updated to
1.0.3(#2740). CopyableThrowableis allowed to modify the exception message during stacktrace recovery (#1931).CoroutineDispatcher.releaseInterceptedContinuationis now afinalmethod (#2785).- Closing a Handler underlying
Handler.asCoroutineDispatchernow causes the dispatched coroutines to be canceled onDispatchers.IO (#​2778). - Kotlin is updated to 1.5.20.
- Fixed a spurious
ClassCastExceptioninreleaseInterceptedContinuationandIllegalStateExceptionfromtryReleaseClaimedContinuation(#2736, #2768). - Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators (#2749).
- Fixed linear stack usage for
CompletableFuture.asDeferredwhen the target future has a long chain of listeners (#2730). - Any exceptions from
CoroutineDispatcher.isDispatchNeededare now considered as fatal and are propagated to the caller (#2733). - Internal
DebugProbesKt(used in the debugger implementation) are moved fromdebugtocoremodule.
v1.5.0
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
- Major channels API rework (#330, #974). Existing
offer,poll, andsendBlockingmethods are deprecated, internalreceiveCatchingandonReceiveCatchingremoved,receiveOrNullandonReceiveOrNullare completely deprecated. Previously deprecatedSendChannel.isFulldeclaration is removed. Channel operators deprecated withERRORare nowHIDDEN. - New methods
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
- All existing API in modules
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).- Misleading
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).- All reactive builders no longer ignore inner cancellation exceptions preventing their completion (#2262, #2646).
MaybeSource.collectandMaybe.collectproperly finish when they are completed without a value (#2617).- All exceptions are now consistently handled according to reactive specification, whether they are considered 'fatal' or not by reactive frameworks (#2646).
Other improvements
- Kotlin version is upgraded to 1.5.0 and JVM target is updated to 1.8.
Flow.lastandFlow.lastOrNulloperators (#2246).Flow.runningFoldoperator (#2641).CoroutinesTimeoutrule for JUnit5 (#2197).- Internals of
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).- Introduced new
DelicateCoroutinesApiannotation that warns users about potential target API pitfalls and suggests studying API's documentation first. The only delicate API right now isGlobalScope(#2637). - Fixed bug introduced in
1.4.3whenkotlinx-coroutines-core.jartriggered IDEA debugger failure (#2619). - Fixed memory leak of
ChildHandlerNodewith reusable continuations (#2564). - Various documentation improvements (#2555, #2589, #2592, #2583, #2437, #2616, #2633, #2560).
Changelog relative to version 1.5.0-RC
- Fail-fast during
emitAllcalled from cancelledonCompletionoperator (#2700). - Flows returned by
stateIn/shareInkeep strong reference to sharing job (#2557). - Rename internal
TimeSourcetoAbstractTimeSourcedue to import issues (#2691). - Reverted the change that triggered IDEA coroutines debugger crash (#2695, reverted #2291).
watchosX64target support for Kotlin/Native (#2524).- Various documentation fixes and improvements.
v1.4.3
General changes
- Thread context is properly preserved and restored for coroutines without
ThreadContextElement(#985) ThreadContextElements are now restored in the opposite order from update (#2195)- Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
- Debug agent sanitizer leaves at least one frame with source location (#1437)
- Update Reactor version in
kotlinx-coroutines-reactorto3.4.1, thanks to @sokomishalov (#2432) callsInPlacecontract added toReceiveChannel.consume(#941)CoroutineStart.UNDISPATCHEDpromoted to stable API (#1393)- Kotlin updated to 1.4.30
kotlinx.coroutinesare now released directly to MavenCentral- Reduced the size of
DispatchedCoroutineby a field - Internal class
TimeSourcerenamed toSchedulerTimeSourceto prevent wildcard import issues (#2537)
Bug fixes
- Fixed the problem that prevented implementation via delegation for
Jobinterface (#2423) - Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
- Fixed
await/asDeferredforMinimalStageimplementations in jdk8 module (#2456) - Fixed bug when
onUndeliveredElementwasn't called for unlimited channels (#2435) - Fixed a bug when
ListenableFuture.isCancelledreturned fromasListenableFuturecould have thrown an exception, thanks to @vadimsemenov (#2421) - Coroutine in
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.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.