1
0
mirror of https://github.com/golang/go synced 2024-11-18 16:14:46 -07:00
go/internal/jsonrpc2
Ian Cottrell 1f1f5f5d57 internal/lsp: decouple message processing from stream processing.
The means that the stream reader can move forward while a message is being processed.
This will significantly improve responsivness and cancellation handling, and also
allow message handlers to send messages themselves, reducing the need to spin up
new go routines inside handlers.
The flow control changes from blocking to failing when a server is busy, which removes
the main current cause of deadlock, but may break non deadlock cases that currently wait
if the queue is not sufficiently large.

Change-Id: Ia73eb049b38d0651344abdbf16c477a8ce1a6fd1
Reviewed-on: https://go-review.googlesource.com/c/tools/+/170007
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-03-29 19:59:38 +00:00
..
jsonrpc2_test.go internal/jsonrpc2: split main loop from construction to fix race 2019-03-29 19:31:51 +00:00
jsonrpc2.go internal/lsp: decouple message processing from stream processing. 2019-03-29 19:59:38 +00:00
log.go cmd/golsp: format logging for the lsp inspector 2018-11-02 22:32:51 +00:00
stream.go
wire.go internal/lsp: decouple message processing from stream processing. 2019-03-29 19:59:38 +00:00