Configurate
Configurate copied to clipboard
chore(deps): Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.4
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| org.jetbrains.kotlinx:kotlinx-coroutines-core | 1.5.2 -> 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
- 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://kotlinlang.org/api/kotlinx.coroutines/) (#3051, #3054).
Changelog relative to version 1.6.0-RC3
Configuration
📅 Schedule: Branch creation - "after 5pm on the 2nd day of the month" (UTC), 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.
- [ ] If you want to rebase/retry this PR, click this checkbox.
This PR has been generated by Mend Renovate. View repository job log here.