Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).
1.4.1
This is a patch release with an important fix to the SharedFlow implementation.
SharedFlow: Fix scenario with concurrent emitters and cancellation of a subscriber (#2359, thanks to @vehovsky for the bug report).
1.4.0
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:
Complete fairness is maintained for single-threaded dispatchers.
Its performance is improved, depending on the use-case, by at least 50% (#2296).
Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
Flow.zip operator performance is improved by 40%.
Various API has been promoted to stable or its deprecation level has been raised (#2316).
Bug fixes
Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
Fix SharedFlow with replay for subscribers working at different speed (#2325).
Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).
1.4.0-M1
Breaking changes
The concept of atomic cancellation in channels is removed. All operations in channels
and corresponding Flow operators are cancellable in non-atomic way (#1813).
If CoroutineDispatcher throws RejectedExecutionException, cancel current Job and schedule its execution to Dispatchers.IO (#2003).
CancellableContinuation.invokeOnCancellation is invoked if the continuation was cancelled while its resume has been dispatched (#1915).
Flow.singleOrNull operator is aligned with standard library and does not longer throw IllegalStateException on multiple values (#2289).
Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).
Version 1.4.1
This is a patch release with an important fix to the SharedFlow implementation.
SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#2359, thanks to @vehovsky for the bug report).
Version 1.4.0
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:
Complete fairness is maintained for single-threaded dispatchers.
Its performance is improved, depending on the use-case, by at least 50% (#2296).
Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
Flow.zip operator performance is improved by 40%.
Various API has been promoted to stable or its deprecation level has been raised (#2316).
Bug fixes
Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
Fix SharedFlow with replay for subscribers working at different speed (#2325).
Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).
Version 1.4.0-M1
Breaking changes
The concept of atomic cancellation in channels is removed. All operations in channels
and corresponding Flow operators are cancellable in non-atomic way (#1813).
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-js from 1.3.7 to 1.4.2-native-mt.
Release notes
Sourced from kotlinx-coroutines-core-js's releases.
... (truncated)
Changelog
Sourced from kotlinx-coroutines-core-js's changelog.
... (truncated)
Commits
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)