Skip to content

Conversation

@ryzngard
Copy link
Contributor

@ryzngard ryzngard commented Jul 25, 2023

Now that the project snapshot manager is a lock based management, reading especially should be easy to remove. This removes it from two areas to start, but it should be fairly impactful.

The DocumentContextFactory gets used on every LSP incoming message to create the context we use for our handlers. Hopefully we should just see wins for this removal, since we're now consistant with expectations around our message dispatching. Things that do not mutate the workspace are allowed to run in parallel, and things that don't should be run serial and block other handlers from getting called.

The removal from the component search seems trivial, so I just did it. I'm not sure of the impact of this area tbh, but it shouldn't break anything.

Commits tell each part of the story, but it's not a large change. Choose your favorite method of reviewing.

@ryzngard ryzngard requested a review from a team as a code owner July 25, 2023 06:01
Copy link
Member

@DustinCampbell DustinCampbell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a couple of unit test failures, but the code looks sound to me.

@ryzngard
Copy link
Contributor Author

Looks like #9026 will be needed first before we can get off the dispatcher thread for the context factory.

@ryzngard ryzngard closed this Jul 26, 2023
@ryzngard ryzngard reopened this Jul 26, 2023
@ryzngard ryzngard enabled auto-merge (squash) July 27, 2023 23:21
@ryzngard ryzngard merged commit 23efc1c into dotnet:main Jul 28, 2023
@ghost ghost added this to the Next milestone Jul 28, 2023
@ryzngard ryzngard deleted the remove_dispatcher branch August 1, 2023 22:15
@Cosifne Cosifne modified the milestones: Next, 17.8 P3 Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants