-
Notifications
You must be signed in to change notification settings - Fork 8
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
Update coroutines_version to v1.8.1 #24
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/coroutines_version
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
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.8.1
1.4.2
->1.8.1
Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)
v1.8.1
Compare Source
@ExperimentalTime
annotation from usages ofTimeSource
(#4046). Thanks, @hfhbd!NullPointerException
when setting theStateFlow
value on old Android devices (#3820).kotlin.random.Random
as part ofDispatchers.Default
andDispatchers.IO
initialization (#4051).Flow.timeout
throws the exception with which the channel was closed (#4071).Changelog relative to version 1.8.1-Beta
Flow.timeout
throws the exception with which the channel was closed (#4071).v1.8.0
Compare Source
Dispatchers.Main != Dispatchers.Main.immediate
(#3545, #3963).Flow
operators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)kotlinx-coroutines-debug
is published with the correct Java 9 module info (#3944).kotlinx-coroutines-debug
no longer requires manually settingDebugProbes.enableCoroutineCreationStackTraces
tofalse
, it's the default (#3783).kotlinx-coroutines-test
: set the default timeout ofrunTest
to 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.Default
and the default thread for background work are guaranteed to use the same context classloader as the object containing it them (#3832).SharedFlow.collect
suspends for the first time, it's registered as a subscriber for thatSharedFlow
(#3885). Before, it was also true, but not documented.withLock
on JS (#3881). Thanks @CLOVIS-AI!Changelog relative to version 1.8.0-RC2
kotlinx-coroutines-debug
no longer requires manually settingDebugProbes.enableCoroutineCreationStackTraces
tofalse
, it's the default (#3783).Flow
operators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)v1.7.3
Compare Source
v1.7.2
Compare Source
Bug fixes and improvements
CopyableThreadContextElement
now properly copies an element when crossing the coroutine boundary inflowOn
(#3787). Thanks @wanyingd1996!newSingleThreadContext
from closing (#3768).Mutex
duringtryLock
/unlock
sequence with owners is fixed (#3745).v1.7.1
Compare Source
Bug fixes and improvements
runTest
is restored (#3673)onUndeliveredElement
now allocate less memory (#3646)v1.7.0
Compare Source
Core API significant improvements
Channel
implementation with significant performance improvements across the API (#3621).select
operator implementation: faster, more lightweight, and more robust (#3020).Mutex
andSemaphore
now share the same underlying data structure (#3020).Dispatchers.IO
is added to K/N (#3205)newFixedThreadPool
andDispatchers.Default
implementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-test
rework:timeout
parameter torunTest
for the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).withTimeout
exception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler
,runTest
, andTestScope
API are promoted to stable (#3622).runTest
now also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).Breaking changes
kotlinx-coroutines-core
andkotlinx-coroutines-jdk8
artifacts were merged into a single artifact (#3268).\b
symbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActive
returnstrue
for contexts without any job in them (#3300).Bug fixes and improvements
JavaFx
version is updated to 17.0.2 inkotlinx-coroutines-javafx
(#3671)..BroadcastChannel
and all the corresponding API are deprecated (#2680).Dispatchers.Default
is backed by the number of threads equal to the number of available cores (#3366).Job.parent
API (#3201).TestScheduler
leaked cancelled jobs (#3398).TestScope.timeSource
now provides comparable time marks (#3617). Thanks @hfhbd!withTimeout
handles were preserved in JS runtime (#3440).awaitFrame
only awaits a single frame when used from the main looper (#3432). Thanks @pablobaxter!Class-Path
attribute was removed fromkotlinx-coroutines-debug.jar
manifest (#3361).updateThreadContext
operated on the parent context (#3411).Flow.filterIsInstance
extension (#3240).Dispatchers.Default
thread name prefixes are now configurable with system property (#3231).Flow.timeout
operator as@FlowPreview
(#2624). Thanks @pablobaxter!future
builder in case of exceptions (#3475). Thanks @He-Pin!Mono.awaitSingleOrNull
now waits for theonComplete
signal (#3487).Channel.isClosedForSend
andChannel.isClosedForReceive
are promoted from experimental to delicate (#3448).EventLoop
(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)
no longer creates an additional wrapper (#3442). Thanks @dovchinnikov!@FlowPreview
and@ExperimentalCoroutinesApi
are promoted to experimental and stable respectively (#3542, #3097, #3548).Dispatchers.Default
andDispatchers.IO
(#3416, #3418).suspendCancellableCoroutineReusable
might have hanged (#3613).CoroutineExceptionHandler
is no longer invoked in case of unprocessedfuture
failure (#3452).withContext
operator (#3592).DebugProbes
(#3527).CoroutineDispatcher.asExecutor()
runs tasks without dispatching if the dispatcher is unconfined (#3683). Thanks @odedniv!SharedFlow.toMutableList
andSharedFlow.toSet
lints are introduced (#3706).Channel.invokeOnClose
is promoted to stable API (#3358).Dispatchers.Default
andDispatchers.IO
during the startup phase (#3652).Dispatchers.Default
(#3642).limitedParallelism
to perform dispatches even after the underlying dispatcher was closed (#3672).cause
was selected (#3714).Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md
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).v1.5.2
Compare Source
onUndeliveredElement
was incorrectly called on 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)callsInPlace
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)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.