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).
Breaking changes
When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).
Dispatchers.Main is now used as the default source of time for delay and withTimeout when present (#2972).
To opt-out from this behaviour, kotlinx.coroutines.main.delay system property can be set to false.
Java target of coroutines build is now 8 instead of 6 (#1589).
Source-breaking change: extension 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 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.memoryModel is enabled (#2914).
Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).
transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan 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).
Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#2964).
SharedFlow.collect now returns Nothing (#2789, #2502).
DisposableHandle is now fun interface, and corresponding inline extension is removed (#2790).
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.
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).
Breaking changes
When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).
Dispatchers.Main is now used as the default source of time for delay and withTimeout when present(#2972).
To opt-out from this behaviour, kotlinx.coroutines.main.delay system property can be set to false.
Java target of coroutines build is now 8 instead of 6 (#1589).
Source-breaking change: extension 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 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.memoryModel is enabled (#2914).
Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).
transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan 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).
Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#2964).
... (truncated)
Commits
2c3435c Merge pull request #3232 from Kotlin/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.
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).
Breaking changes
When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).
Dispatchers.Main is now used as the default source of time for delay and withTimeout when present (#2972).
To opt-out from this behaviour, kotlinx.coroutines.main.delay system property can be set to false.
Java target of coroutines build is now 8 instead of 6 (#1589).
Source-breaking change: extension 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 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.memoryModel is enabled (#2914).
Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).
transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan 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).
Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#2964).
SharedFlow.collect now returns Nothing (#2789, #2502).
DisposableHandle is now fun interface, and corresponding inline extension is removed (#2790).
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.
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).
Breaking changes
When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).
Dispatchers.Main is now used as the default source of time for delay and withTimeout when present(#2972).
To opt-out from this behaviour, kotlinx.coroutines.main.delay system property can be set to false.
Java target of coroutines build is now 8 instead of 6 (#1589).
Source-breaking change: extension 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 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.memoryModel is enabled (#2914).
Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).
transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan 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).
Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#2964).
... (truncated)
Commits
2c3435c Merge pull request #3232 from Kotlin/version-1.6.1
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
kotlinCoroutinesVersion
from 1.5.2 to 1.6.1. Updateskotlinx-coroutines-core
from 1.5.2 to 1.6.1Release notes
Sourced from kotlinx-coroutines-core's releases.
... (truncated)
Changelog
Sourced from kotlinx-coroutines-core's changelog.
... (truncated)
Commits
2c3435c
Merge pull request #3232 from Kotlin/version-1.6.1429b5d1
Version 1.6.1262876b
Merge branch 'master' into developa5dd74b
CopyableThreadContextElement implementation (#3227)8133c97
Fix limitedParallelism implementation on K/N (#3226)6c326e4
Do not mention service loading for CoroutineExceptionHandler as it is not mea...f991742
docs: clarify section on coroutine memory consumption (#3225)0d26d6c
Add references to available implementations in TestDispatcher docs (#3200)584b3c4
Fix typo: onDeliveredElement (#3217)bc120a1
Fix a typo (#3213)Updates
kotlinx-coroutines-test
from 1.5.2 to 1.6.1Release notes
Sourced from kotlinx-coroutines-test's releases.
... (truncated)
Changelog
Sourced from kotlinx-coroutines-test's changelog.
... (truncated)
Commits
2c3435c
Merge pull request #3232 from Kotlin/version-1.6.1429b5d1
Version 1.6.1262876b
Merge branch 'master' into developa5dd74b
CopyableThreadContextElement implementation (#3227)8133c97
Fix limitedParallelism implementation on K/N (#3226)6c326e4
Do not mention service loading for CoroutineExceptionHandler as it is not mea...f991742
docs: clarify section on coroutine memory consumption (#3225)0d26d6c
Add references to available implementations in TestDispatcher docs (#3200)584b3c4
Fix typo: onDeliveredElement (#3217)bc120a1
Fix a typo (#3213)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)