This repository has been archived by the owner on Nov 14, 2022. It is now read-only.
Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.4 #4
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.1.0
->1.6.4
⚠ Dependency Lookup Warnings ⚠
Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.
Release Notes
Kotlin/kotlinx.coroutines
v1.6.4
Compare Source
TestScope.backgroundScope
for launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287).kotlinx-coroutines-debug
having an incorrect reference tokotlinx-coroutines-bom
, which cause the builds of Maven projects using the debug module to break (#3334).Publisher.await
functions inkotlinx-coroutines-reactive
not ensuring that theSubscriber
methods are invoked serially (#3360). Thank you, @EgorKulbachka!withTimeout
on K/N with the new memory model (#3351).Throwable
implementations in the core library are serializable (#3328).v1.6.3
Compare Source
v1.6.2
Compare Source
ThreadLocalElement
not being correctly updated when the most outersuspend
function was called directly withoutkotlinx.coroutines
(#2930).runBlocking
event loop, and a benign data race inMutex
(#3250, #3251).TestCoroutineContext
is removed, which fixes thekotlinx-coroutines-test
JPMS package being split betweenkotlinx-coroutines-core
andkotlinx-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.1
Compare Source
Dispatchers.Main
.This behavior was introduced in 1.6.0 and then found inconvenient and erroneous (#3106, #3113).
CopyableThreadContextElement
to solve issues uncovered after the initial release (#3227).ThreadLocalElement
not being properly updated in racy scenarios (#2930).CoroutineExceptionHandler
that triggered ANR on some devices (#3180).CoroutineDispatcher
to a Rx scheduler (#968, #548). Thanks @recheej!flow
builder being retained in memory (#3197).limitedParallelism
on K/N with new memory model throwingClassCastException
(#3223).CoroutineContext
is added to the exception printed to the defaultCoroutineExceptionHandler
to improve debuggability (#3153).Dispatchers.Default
was significantly reduced (#3137).kotlinx-coroutines-slf4j
from 1.7.25 to 1.7.32.v1.6.0
Compare 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-test
became a multiplatform library usable from K/JVM, K/JS, and K/N.).
Dispatchers
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 ofDispatchers.IO
itself to avoid starvation (#2943).Dispatchers.shutdown
method for containerized environments (#2558).newSingleThreadContext
andnewFixedThreadPoolContext
are promoted to delicate API (#2919).Breaking changes
future
builder no longer reports unhandled exceptions into the globalCoroutineExceptionHandler
. Thanks @vadimsemenov! (#2774, #2791).Mutex.onLock
is deprecated for removal (#2794).Dispatchers.Main
is now used as the default source of time fordelay
andwithTimeout
when present(#2972).kotlinx.coroutines.main.delay
system property can be set tofalse
.collect
no 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.memoryModel
is enabled (#2914).CopyableThreadContextElement
for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).transformWhile
,awaitClose
,ProducerScope
,merge
,runningFold
,runingReduce
, andscan
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).flat*
operators that leverage multiple coroutines is no longer propagated upstream (#2964).SharedFlow.collect
now returnsNothing
(#2789, #2502).DisposableHandle
is nowfun interface
, and corresponding inline extension is removed (#2790).FlowCollector
is nowfun interface
, and corresponding inline extension is removed (#3047).processUnhandledException
(#2981).Task
callbacks inkotlinx-coroutines-play-services
(#2990).CoroutineExceptionHandler
is loaded eagerly and does not invokeServiceLoader
on its exception-handling path (#2552).ServiceLoader
optimization (#2880).SendChannel.trySendBlocking
is now available on Kotlin/Native (#3064).ClassValue
when available (#2997).Delay
interface is deprecated (#2979).CommonPool
is removed.@ExperimentalTime
is no longer needed for methods that useDuration
(#3041).Changelog relative to version 1.6.0-RC3
v1.5.2
Compare Source
onUndeliveredElement
was incorrectly called on a properly received elements on JS (#2826).Dispatchers.Default
on React Native, it now fully relies onsetTimeout
instead of stubprocess.nextTick
. Thanks to @Legion2 (#2843).Mutex
implementation (#2581).Mutex
implementation is made completely lock-free as stated (#2590).v1.5.1
Compare Source
update
,getAndUpdate
, andupdateAndGet
operations ofMutableStateFlow
(#2720).Executor.asCoroutineDispatcher
implementation improvements (#2601):ScheduledExecutorService
, then itsschedule
API is used for time-related coroutine operations.RemoveOnCancelPolicy
is now part of the public contract.Task.asDeferred
andTask.await
that acceptCancellationTokenSource
for bidirectional cancellation (#2527).1.0.3
(#2740).CopyableThrowable
is allowed to modify the exception message during stacktrace recovery (#1931).CoroutineDispatcher.releaseInterceptedContinuation
is now afinal
method (#2785).Handler.asCoroutineDispatcher
now causes the dispatched coroutines to be canceled onDispatchers.IO (#​2778)
.ClassCastException
inreleaseInterceptedContinuation
andIllegalStateException
fromtryReleaseClaimedContinuation
(#2736, #2768).CompletableFuture.asDeferred
when the target future has a long chain of listeners (#2730).CoroutineDispatcher.isDispatchNeeded
are now considered as fatal and are propagated to the caller (#2733).DebugProbesKt
(used in the debugger implementation) are moved fromdebug
tocore
module.v1.5.0
Compare 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
, andsendBlocking
methods are deprecated, internalreceiveCatching
andonReceiveCatching
removed,receiveOrNull
andonReceiveOrNull
are completely deprecated. Previously deprecatedSendChannel.isFull
declaration is removed. Channel operators deprecated withERROR
are nowHIDDEN
.receiveCatching
,onReceiveCatching
trySend
,tryReceive
, andtrySendBlocking
along with the new result typeChannelResult
are 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.BroadcastChannel
andConflatedBroadcastChannel
are marked asObsoleteCoroutinesApi
in the favor orSharedFlow
andStateFlow
. The migration scheme can be found in their documentation. These classes will be deprecated in the next major release.callbackFlow
andchannelFlow
are promoted to stable API.Reactive integrations
kotlinx-coroutines-rx2
,kotlinx-coroutines-rx3
,kotlinx-coroutines-reactive
,kotlinx-coroutines-reactor
, andkotlinx-coroutines-jdk9
were revisited and promoted to stable (#2545).publish
is no longer allowed to emitnull
values (#2646).awaitSingleOr*
functions onPublisher
type are deprecated (#2591).MaybeSource.await
is deprecated in the favor ofawaitSingle
, additional lint functions forMono
are added in order to prevent ambiguousPublisher
usages (#2628, #1587).ContextView
support inkotlinx-coroutines-reactor
(#2575).MaybeSource.collect
andMaybe.collect
properly finish when they are completed without a value (#2617).Other improvements
Flow.last
andFlow.lastOrNull
operators (#2246).Flow.runningFold
operator (#2641).CoroutinesTimeout
rule for JUnit5 (#2197).Job
andAbstractCoroutine
was reworked, resulting in smaller code size, less memory footprint, and better performance (#2513, #2512).CancellationException
from Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native (#2638).DelicateCoroutinesApi
annotation 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.3
whenkotlinx-coroutines-core.jar
triggered IDEA debugger failure (#2619).ChildHandlerNode
with reusable continuations (#2564).Changelog relative to version 1.5.0-RC
emitAll
called from cancelledonCompletion
operator (#2700).stateIn
/shareIn
keep strong reference to sharing job (#2557).TimeSource
toAbstractTimeSource
due to import issues (#2691).watchosX64
target support for Kotlin/Native (#2524).v1.4.3
Compare Source
General changes
ThreadContextElement
(#985)ThreadContextElement
s are now restored in the opposite order from update (#2195)kotlinx-coroutines-reactor
to3.4.1
, thanks to @sokomishalov (#2432)callInPlace
contract added toReceiveChannel.consume
(#941)CoroutineStart.UNDISPATCHED
promoted to stable API (#1393)kotlinx.coroutines
are now released directly to MavenCentralDispatchedCoroutine
by a fieldTimeSource
renamed toSchedulerTimeSource
to prevent wildcard import issues (#2537)Bug fixes
Job
interface (#2423)await
/asDeferred
forMinimalStage
implementations in jdk8 module (#2456)onUndeliveredElement
wasn't called for unlimited channels (#2435)ListenableFuture.isCancelled
returned fromasListenableFuture
could have thrown an exception, thanks to @vadimsemenov (#2421)callbackFlow
andproduce
is properly cancelled when the channel was closed separately (#2506)v1.4.2
Compare Source
StackOverflowError
inJob.toString
whenJob
is observed in its intermediate state (#2371).Dispatchers.Default
andDispatchers.IO
in low-loaded mode (#2381).Channel.cancel
invocations (#2384).SharingStarted
is nowfun
interface (#2397).SharedFlow
to catch programmatic errors early (#2376).CoroutineStackFrame
in exception recovery that triggered failures of instrumented code (#2386).kotlinx-coroutines-javafx
(#2360).v1.4.1
Compare Source
This is a patch release with an important fix to the
SharedFlow
implementation.v1.4.0
Compare Source
Improvements
StateFlow
,SharedFlow
and corresponding operators are promoted to stable API (#2316).Flow.debounce
operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).CoroutineContext.job
extension property is introduced (#2159).Flow.combine operator
is reworked:crossinline
andinline
-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).Flow.zip
operator performance is improved by 40%.Bug fixes
stateIn
operator propagates exception to the caller when upstream fails to produce initial value (#2329).SharedFlow
with replay for subscribers working at different speed (#2325).BlockHound
false-positives are correctly filtered out (#2302, #2190, #2303).Observable.asFlow
is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).v1.3.9
Compare Source
CoroutineContext
inFlow.asPublisher
and similar reactive builders (#2155).kotlinx-coroutines-core-common
andkotlinx-coroutines-core-native
are removed.kotlinx-coroutines-core
incommonMain
source-set.v1.3.8
Compare Source
New experimental features
Flow.transformWhile operator
(#2065).scanReduce
withrunningReduce
to be consistent with the Kotlin standard library (#2139).Bug fixes and improvements
Flow.asPublisher
(#2109).ensureActive
to work in the empty context case to fixIllegalStateException
when using flow fromsuspend fun main
(#2044).AbortFlowException
in theFlow.first
operator to avoid erroneousNoSuchElementException
(#2051).kotlinx.coroutines.android
from core module (#2061 by @mkj-gram).6.3
(it only affects multiplatform artifacts in this release).v1.3.7
Compare Source
Flow.cancellable()
operator for cooperative cancellation (#2026).flow
builder now check cancellation status and are properly cancellable (#2026).currentCoroutineContext
function to use unambiguously in the contexts withCoroutineScope
in receiver position (#2026).EXACTLY_ONCE
contract support in coroutine builders.v1.3.6
Compare Source
Flow
StateFlow
, new primitive for state handling (#1973, #1816, #395). TheStateFlow
is designed to eventually replaceConflatedBroadcastChannel
for state publication scenarios. Please, try it and share your feedback. Note, that Flow-based primitives to publish events will be added later. For events you should continue to either useBroadcastChannel(1)
, if you put events into theStateFlow
, protect them from double-processing with flags.Flow.onEmpty
operator is introduced (#1890).Flow.onCompletion
, it is aligned withinvokeOnCompletion
now and passesCancellationException
to its cause parameter (#1693).Other
runInterruptible
primitive to tie cancellation with thread interruption for blocking calls. Contributed by @jxdabc (#1947).kotlinx-coroutines-debug
module (#1821, #1060).suspendCancellableCoroutine
, cancellation is established before invoking passed block argument (#1671).kotlinx-coroutines-core
for better integration with IDEA. It should not affect library users and all the redundant code should be properly eliminated with R8.Executor.asCoroutineDispatcher
(#1992).v1.3.5
Compare Source
firstOrNull
operator. Contributed by @bradynpoulsen.java.time
adapters for Flow operators. Contributed by @fvasco.kotlin.time.Duration
support (#1402). Contributed by @fvasco.DebugProbes
are ready for production installation: its performance is increased, the flag to disable creation stacktraces to reduce the footprint is introduced (#1379, #1372).kotlinx-coroutines-jdk9
with adapters forjava.util.concurrent.Flow
.BroadcastChannel.close
properly starts lazy coroutine (#1713).kotlinx-coroutines-bom
is published without Gradle metadata.v1.3.4
Compare Source
Flow
awaitClose
calls incallbackFlow
to make it less error-prone when used with callbacks (#1762, #1770). This change makescallbackFlow
different fromchannelFlow
.ReceiveChannel.asFlow
extension is introduced (#1490).flow
builder (#1657).Dispatcher
support inFlow
reactive integrations (#1765).Subscription.request
calls inFlow
reactive integration (#766).ObservableValue.asFlow
added to JavaFx integration module (#1695).ObservableSource.asFlow
added to RxJava2 integration module (#1768).Other changes
kotlinx-coroutines-core
is optimized for R8, making it much smaller for Android usages (75 KB for1.3.4
release).Dispatchers.Default
is improved (#1704, #1706).CoroutineDispatcher
andExecutorCoroutineDispatcher
experimental coroutine context keys are introduced (#1805).Channel
operations is improved (#1565).v1.3.3
Flow
Flow.take
performance is significantly improved (#1538).Flow.merge
operator (#1491).take
operator (#1610).NoSuchElementException
instead ofUnsupportedOperationException
for emptyFlow
inreduce
operator (#1659).onCompletion
now rethrows downstream exceptions on emit attempt (#1654).withContext
fromflow
builder (#1616).Debugging
DebugProbes.dumpCoroutines
is optimized to be able to print the 6-digit number of coroutines (#1535).CoroutinesTimeout
test rule (#1542).Job
-related coroutine machinery are shortened and prettified (#1574).withTimeout
is supported (#1625).String
parameter constructor that is not amessage
(#1631).Other features
Dispatchers.Default
andDispatchers.IO
rework: CPU consumption is significantly lower, predictable idle threads termination (#840, #1046, #1286).ServiceLoader
for loadingDispatchers.Main
(#1572, #1557, #878, #1606).yield
support in immediate dispatchers (#1474).CompletableDeferred.completeWith(result: Result<T>)
is introduced.Bug fixes and improvements
CoroutineDispatcher.isDispatchNeeded
is promoted to stable API (#1014).select
expressions are fixed (#1411, #504).null
values inListenableFuture
integration (#1510).kotlinx-coroutines-core
, reduced size of minifieddex
when using basic functionality ofkotlinx-coroutines
.v1.3.2
Compare Source
This is a maintenance release that does not include any new features or bug fixes.
Flow
are promoted to stable API.v1.3.1
Compare Source
This is a minor update with various fixes:
Note: Kotlin/Native artifacts are now published with Gradle metadata format version 1.0, so you will need
Gradle version 5.3 or later to use this version of kotlinx.coroutines in your Kotlin/Native project.
v1.3.0
Compare Source
Flow
This version is the first stable release with
Flow
API.All
Flow
API not marked with@FlowPreview
or@ExperimentalCoroutinesApi
annotations are stable and here to stay.Flow declarations marked with
@ExperimentalCoroutinesApi
have the same guarantees as regular experimental API.Please note that API marked with
@FlowPreview
have weak guarantees on source, binary and semantic compatibility.Changelog
CoroutineDispatcher.asExecutor
extension (#1450).select
statement could report the same exception twice (#1433).flatMapMerge
in a case when collected values were immediately emitted to another flow (#1440).v1.2.2
Compare Source
v1.2.1
Compare Source
Major:
kotlinx-coroutines-test
:runBlockingTest
,TestCoroutineScope
andTestCoroutineDispatcher
, contributed by Sean McQuillan (@objcode). ObsoleteTestCoroutineContext
fromkotlinx-coroutines-core
is deprecated.Job.asCompletableFuture
extension in jdk8 module (#1113).Flow improvements:
flowViaChannel
rework: block parameter is no longer suspending, but providesCoroutineScope
receiver and allows conflated channel (#1081, #1112).switchMap
,sample
,debounce
(#1107).consumerEach
is deprecated onPublisher
,ObservableSource
andMaybeSource
,collect
extension is introduced instead (#1080).Other:
v1.2.0
Compare Source
CancellableContinuation.resume
withonCancelling
lambda (#1044) to consistently handle closeable resources.ReceiveChannel.isEmpty
is no longer deprecatedA lot of
Flow
improvements:zip
andcombineLatest
operators.flatMap
,merge
andconcatenate
are replaced withflattenConcat
,flattenMerge
,flatMapConcat
andflatMapMerge
.Note that
Flow
is not leaving its preview status.v1.1.1
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.