-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Version 1.3.6 #2001
Merged
Merged
Version 1.3.6 #2001
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
The representation of not selected state is changed from _state === this to _state === NOT_SELECTED (a special marker).
…1880) During the change of the publication validator, a bug was introduced that led to MavenPublicationValidator being run not on the artifacts from the local Maven repository but on classfiles from the corresponding subproject. This is a problem because this test is for the behavior of the atomicfu plugin, which could in theory produce nice classfiles in one place but wrong ones in the other, and the only important thing to test is whether the published classfiles are good. Now, this is fixed.
* Fix DefaultExecutor not being able to exit. * Also adds the performance optimization. See the discussion on the PR. * Add a stress test for the DefaultExecutor worker shutting down. * Make `testDelayChannelBackpressure2` not fail: This test could in theory already fail on the second `checkNotEmpty`: after the first `checkNotEmpty` has passed, first, the ticker channel awakens to produce a new element, and then the main thread awakens to check if it's there. However, if the ticker channel is sufficiently slowed down, it may not produce the element in time for the main thread to find it. After introducing the change that allows the worker thread in `DefaultExecutor` to shut down, the initial delay of 2500 ms is sufficient for the worker to shut down (which, by default, happens after 1000 ms of inactivity), and then the aforementioned race condition worsens: additional time is required to launch a new worker thread and it's much easier to miss the deadline. Now, the delays are much shorter, meaning that the worker thread is never inactive long enough to shut down. Fixes #856
…1885) When ArrayBroadcastChannel was closed it was still retaining a reference to its subscription (even if that subscription was cancelled) while, in fact, either closing a broadcast channel or cancelling subscription should remove the reference. This is no problem with ConflatedBroadcastChannel, but it is added to the test for completeness.
* Update CoroutineScope docs * Fixed scope examples in guides, added notes on first-party support in Android. * Simplified scopes section in UI guide since it is mostly irrelevant. Fixes #1581
* Integration with BlockHound * Improve build configuration of integration tests * publication-validator is renamed to integration-testing; * Add an integration test for coroutine debugger java agent * Use JNA-based attach mechanism for dynamic attach Fixes #1821 Fixes #1060 Co-authored-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com> Co-authored-by: Sergei Egorov <bsideup@gmail.com>
* Introduce Flow.onEmpty operator Fixes #1890
* Make the list of segments more abstract, so that it can be used for other synchronization and communication primitives Co-authored-by: Roman Elizarov <elizarov@gmail.com>
* Further clarifications and better style for exception handling * Consistent terminology on "uncaught exceptions". * Clarified special relations of exception handling with supervision. * Clearer text in CoroutineExceptionHandler examples. * Minor stylistic corrections. Fixes #1746 Fixes #871 Co-Authored-By: EdwarDDay <4127904+EdwarDDay@users.noreply.github.com>
* Make semaphore implementation linearizable (ignoring extra suspensions) * Make mutex implementation linearizable (ignoring extra suspensions) * Add linearizability tests for mutex and semaphore * Fix `SegmentQueueLCStressTest` Fixes #1737 Co-authored-by: Roman Elizarov <elizarov@gmail.com>
This is debug agent machinery rework in order to prepare for IDEA integration * Extract internal DebugProbesImpl to kotlinx-coroutines-core * Introduce AgentPremain that works without ByteBuddy to kotlinx-coroutines-core, so it now can be used as Java agent and all debug info can be extracted via reflection or JDWP * Reflective lookup of ByteBuddy attach to resolve cyclic dependency between core and debug modules * Reduce public API surface, introduce JDWP-specific API * Introduce a mechanism to produce a DebugProbesKt.bin and verify them against the golden value
Fixes #1883 Co-authored-by: Zac Sweers <zsweers@slack-corp.com>
…1732) Flow.onCompletion now reports all failures and cancellation in its cause just like invokeOnCompletion. A null cause is reported if and only if flow had completed successfully (no failure, no cancellation). Emission of additional elements after the end of the flow is only possible from inside of onCompletion block in case of successful completion. Also fixed a bug where onCompletion implementation was trying to add exception to its own list of suppressed exceptions, which is not allowed. Fixes #1693
* Remove experimental annotation from Flow terminal and Channel operators * Remove experimental annotation from Flow count* and reduce* operators * Remove experimental annotation from Flow operations, including buffer and flowOn * Remove experimental annotation from combine and zip
This reverts commit 76e6440
* Kotlin DSL - 'android:example-app' (#1940) * 'android:example-app'. Gradle 5.6.1 - sync with root project * Kotlin DSL - 'android:example-app' * Kotlin DSL - 'android:animation-app' (#1941) * 'android:animation-app'. Gradle 5.6.1 - sync with root project * Kotlin DSL - 'android:animation-app' * Kotlin DSL - 'swing' (#1943) * Kotlin DSL - 'integration:jdk8' (#1944) * Kotlin DSL - 'test' (#1945) * Kotlin DSL - 'reactive:reactive' (#1946) * Kotlin DSL - 'android-unit-tests' * Use relative paths * Kotlin DSL - 'js-stub' (#1938) (#1959) * Kotlin DSL - 'android' (#1938) (#1956) * Kotlin DSL - 'stdlib-stubs' (#1938) (#1955) * Kotlin DSL - 'site' (#1938) (#1954) * Kotlin DSL - 'maven-central' (#1938) (#1953) * Kotlin DSL - 'benchmarks' (#1938) (#1952) Co-authored-by: Victor Turansky <victor.turansky@gmail.com>
* Use standard random API * Inline 'random' method
* Fix code formatting in doc example and make it more concise (both vertically and horizontally). * Don't promote custom `withTimeout` logic in examples. Use the actual `withTimeout` function. * Logical introduction of `context` parameter in docs (first use without it, then explain how it helps), consistent doc references. * Improved implementation in various places: * runInterruptibleInExpectedContext does not have to be suspend * There is always Job in the context * ThreadState should not do complex init in constructor (that's bad style) * ThreadState does not need inner State class, atomic int is enough * Consistent project-wide variable naming: state -> _state * Consistent use of `error` function to throw IllegalStateException
Spell-check & subject/body separation inspection
StateFlow is a Flow analogue to ConflatedBroadcastChannel. Since Flow API is simpler than channels APIs, the implementation of StateFlow is simpler. It consumes and allocates less memory, while still providing full deadlock-freedom (even though it is not lock-free internally). Fixes #1973 Fixes #395 Fixes #1816 Co-authored-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
elizarov
approved these changes
May 8, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's add more details on StateFlow
, though.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.