Skip to content
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

x/tools/gopls: allow parallel request processing #32629

Open
muirdm opened this issue Jun 14, 2019 · 2 comments
Open

x/tools/gopls: allow parallel request processing #32629

muirdm opened this issue Jun 14, 2019 · 2 comments
Labels
FeatureRequest gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.

Comments

@muirdm
Copy link

muirdm commented Jun 14, 2019

Currently all requests (e.g. signatureHelp, hover, complete, documentHighlight, etc) are processed synchronously, meaning they block subsequent requests/notifications. This includes the time they spend parsing and type checking, which can be significant. In particular, this is wasteful when a new didChange event comes in, since that "should" cancel all in-flight requests for that package, but currently it has to wait for them all to finish.

When gopls is ready for the extra complexity, @ianthehat says that these requests can change to do most of their work asynchronously.

@gopherbot gopherbot added this to the Unreleased milestone Jun 14, 2019
@gopherbot gopherbot added the gopls Issues related to the Go language server, gopls. label Jun 14, 2019
@ianthehat ianthehat self-assigned this Jun 14, 2019
@gopherbot gopherbot added the Tools This label describes issues relating to any tools in the x/tools repository. label Sep 12, 2019
@stamblerre stamblerre modified the milestones: Unreleased, gopls unplanned Dec 4, 2019
@stamblerre stamblerre modified the milestones: gopls unplanned, gopls/v1.0.0 Jan 29, 2020
@stamblerre stamblerre modified the milestones: gopls/v0.6.0, gopls/v0.7.0 Apr 2, 2020
@stamblerre stamblerre removed this from the gopls/v0.7.0 milestone Jun 24, 2020
@muirdm
Copy link
Author

muirdm commented Jul 30, 2020

I'm closing this out since I don't think it is an issue anymore. AFAIK request cancelation jumps the queue now which solves the primary issue.

@muirdm muirdm closed this as completed Jul 30, 2020
@stamblerre
Copy link
Contributor

I'm actually going to reopen this because it's caused problems in the context of other issues, like golang/vscode-go#236. Requests can block behind one really slow request. It is definitely less critical though.

@stamblerre stamblerre reopened this Jul 30, 2020
@stamblerre stamblerre added this to the gopls/unplanned milestone Oct 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FeatureRequest gopls Issues related to the Go language server, gopls. Tools This label describes issues relating to any tools in the x/tools repository.
Projects
None yet
Development

No branches or pull requests

4 participants