Added TestScope.backgroundScope for 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-debug having an incorrect reference to kotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).
Fixed the Publisher.await functions in kotlinx-coroutines-reactive not ensuring that the Subscriber methods are invoked serially (#3360). Thank you, @EgorKulbachka!
Fixed a memory leak in withTimeout on K/N with the new memory model (#3351).
Added the guarantee that all Throwable implementations in the core library are serializable (#3328).
Updated atomicfu version to 0.17.3 (#3321), fixing the projects using this library with JS IR failing to build (#3305).
1.6.2
Fixed a bug with ThreadLocalElement not being correctly updated when the most outer suspend function was called directly without kotlinx.coroutines (#2930).
Fixed multiple data races: one that might have been affecting runBlocking event loop, and a benign data race in Mutex (#3250, #3251).
Obsolete TestCoroutineContext is removed, which fixes the kotlinx-coroutines-test JPMS package being split between kotlinx-coroutines-core and kotlinx-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 to 7.4.2 (#3281). Thanks, @wojtek-kalicinski!
Various documentation improvements.
1.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 CopyableThreadContextElement to solve issues uncovered after the initial release (#3227).
Fixed a bug with ThreadLocalElement not being properly updated in racy scenarios (#2930).
Reverted eager loading of default CoroutineExceptionHandler that triggered ANR on some devices (#3180).
New API to convert a CoroutineDispatcher to a Rx scheduler (#968, #548). Thanks @recheej!
Fixed a memory leak with the very last element emitted from flow builder being retained in memory (#3197).
Fixed a bug with limitedParallelism on K/N with new memory model throwing ClassCastException (#3223).
CoroutineContext is added to the exception printed to the default CoroutineExceptionHandler to improve debuggability (#3153).
Static memory consumption of Dispatchers.Default was significantly reduced (#3137).
Updated slf4j version in kotlinx-coroutines-slf4j from 1.7.25 to 1.7.32.
1.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-test became a multiplatform library usable from K/JVM, K/JS, and K/N.
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.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 of Dispatchers.IO itself to avoid starvation (#2943).
Introduced new Dispatchers.shutdown method for containerized environments (#2558).
newSingleThreadContext and newFixedThreadPoolContext are promoted to delicate API (#2919).
Added TestScope.backgroundScope for 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-debug having an incorrect reference to kotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).
Fixed the Publisher.await functions in kotlinx-coroutines-reactive not ensuring that the Subscriber methods are invoked serially (#3360). Thank you, @EgorKulbachka!
Fixed a memory leak in withTimeout on K/N with the new memory model (#3351).
Added the guarantee that all Throwable implementations in the core library are serializable (#3328).
Updated atomicfu version to 0.17.3 (#3321), fixing the projects using this library with JS IR failing to build (#3305).
Version 1.6.2
Fixed a bug with ThreadLocalElement not being correctly updated when the most outer suspend function was called directly without kotlinx.coroutines (#2930).
Fixed multiple data races: one that might have been affecting runBlocking event loop, and a benign data race in Mutex (#3250, #3251).
Obsolete TestCoroutineContext is removed, which fixes the kotlinx-coroutines-test JPMS package being split between kotlinx-coroutines-core and kotlinx-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 to 7.4.2 (#3281). Thanks, @wojtek-kalicinski!
Various documentation improvements.
Version 1.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 CopyableThreadContextElement to solve issues uncovered after the initial release (#3227).
Fixed a bug with ThreadLocalElement not being properly updated in racy scenarios (#2930).
Reverted eager loading of default CoroutineExceptionHandler that triggered ANR on some devices (#3180).
New API to convert a CoroutineDispatcher to a Rx scheduler (#968, #548). Thanks @recheej!
Fixed a memory leak with the very last element emitted from flow builder being retained in memory (#3197).
Fixed a bug with limitedParallelism on K/N with new memory model throwing ClassCastException (#3223).
CoroutineContext is added to the exception printed to the default CoroutineExceptionHandler to improve debuggability (#3153).
Static memory consumption of Dispatchers.Default was significantly reduced (#3137).
Updated slf4j version in kotlinx-coroutines-slf4j from 1.7.25 to 1.7.32.
Version 1.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-test became a multiplatform library usable from K/JVM, K/JS, and K/N.
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.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps kotlinx-coroutines-core from 1.5.2 to 1.6.4.
Release notes
Sourced from kotlinx-coroutines-core's releases.
... (truncated)
Changelog
Sourced from kotlinx-coroutines-core's changelog.
... (truncated)
Commits
81e17dd
Version 1.6.4f31b037
Merge remote-tracking branch 'origin/master' into developc8271ad
Improve CoroutineDispatcher documentation (#3359)ac4f57e
Update binary compatibility validator to 0.11.0 (#3362)143bdfa
Add a scope for launching background work in tests (#3348)562902b
Fix debug module publication with shadow plugin (#3357)8b6473d
Comply with Subscriber rule 2.7 in theawait*
impl (#3360)10261a7
Update readme (#3343)7934032
Reduce reachable references of disposed invokeOnTimeout handle (#3353)f0874d1
Merge pull request #3342 from Kotlin/kotlinlang-apiDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)