-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Prevent potential deadlocks when reading/writing assets #47864
Merged
Merged
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
tmat
force-pushed
the
AssetStreamingFix
branch
2 times, most recently
from
September 19, 2020 16:29
681baa9
to
ae3ccb0
Compare
This was referenced Sep 23, 2020
tmat
force-pushed
the
AssetStreamingFix
branch
4 times, most recently
from
September 24, 2020 00:08
2814455
to
d441851
Compare
tmat
changed the title
Asset streaming fix
Prevent potential deadlocks when reading/writing assets
Sep 24, 2020
@CyrusNajmabadi @sharwell PTAL |
sharwell
reviewed
Sep 24, 2020
sharwell
reviewed
Sep 24, 2020
sharwell
reviewed
Sep 24, 2020
sharwell
reviewed
Sep 24, 2020
sharwell
reviewed
Sep 26, 2020
tmat
force-pushed
the
AssetStreamingFix
branch
2 times, most recently
from
September 28, 2020 18:46
bec57ed
to
94b4b99
Compare
sharwell
reviewed
Sep 28, 2020
src/Workspaces/CoreTestUtilities/WorkspaceTestModuleInitializer.cs
Outdated
Show resolved
Hide resolved
sharwell
reviewed
Sep 28, 2020
sharwell
reviewed
Sep 28, 2020
tmat
force-pushed
the
AssetStreamingFix
branch
from
September 28, 2020 20:13
94b4b99
to
dab509e
Compare
tmat
force-pushed
the
AssetStreamingFix
branch
from
September 28, 2020 20:23
dab509e
to
2c7d3a8
Compare
sharwell
approved these changes
Sep 29, 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.
This has reached a point where it's a clear improvement for 16.8, and we can iterate on locations for clarity in follow-up work.
tmat
added a commit
to tmat/roslyn
that referenced
this pull request
Oct 1, 2020
This reverts commit 4123b1c. Revert "Do not cancel operations after point of no return" This reverts commit 57759e3. Revert "Remove ClientDisconnectedSource" This reverts commit 24bcf13. Revert "Wait for GetAssetsAsync before returning" This reverts commit c020fe8. Revert "Make sure to complete copy before returning" This reverts commit ebb674f. Revert "Prevent potential deadlocks when reading/writing assets (dotnet#47864)" This reverts commit f60ff7e. Revert "Ensure IServiceBroker is used on a background thread" This reverts commit 1f7397e. Revert "Provide required callback targets" This reverts commit e0e3655. Revert "Ensure IServiceBroker is used on a background thread" This reverts commit 42202d8. Revert "Use MessagePack for serialization, move services to IServiceBroker (dotnet#47461)" This reverts commit e91ccb5.
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.
Instead of reading and writing synchronously to RPC stream use and intermediate pipe with unbounded buffer on both ends. These local pipes allow us to synchronously read/write while (de)serializing and asynchronously copy the serialized data over to the RPC pipe.
Fixes cancellation handling during reading version bytes of serialized content.
Completes fix of RPC hangs like #47720