x/tools/gopls: allow parallel request processing #32629
Open
Comments
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. |
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. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The text was updated successfully, but these errors were encountered: