1
0
mirror of https://github.com/golang/go synced 2024-11-18 14:54:40 -07:00
go/internal/jsonrpc2
Ian Cottrell 4874f863e6 internal/jsonrpc2: change the concurrency strategy
This abandons the limited size queue
Instead we kick a go-routine per request, but have each request wait for the
previous request to say it is okay to continue. This allows each request to
control when it is finished with tasks that required strict ordering without
every blocking the routine that handles replies.
It also protects against repeated or missing replies.

Fixes golang/go#32631
Fixes golang/go#32589
Fixes golang/go#32467
Fixes golang/go#32360
Fixes golang/go#31977

Change-Id: Icd071620052351ec7f8fac136f1b8e3f97d4bb2d
Reviewed-on: https://go-review.googlesource.com/c/tools/+/183718
Run-TryBot: Ian Cottrell <iancottrell@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2019-06-27 03:34:14 +00:00
..
jsonrpc2_test.go internal/jsonrpc2: refactor to enable a more advanced request 2019-06-27 03:33:22 +00:00
jsonrpc2.go internal/jsonrpc2: change the concurrency strategy 2019-06-27 03:34:14 +00:00
log.go cmd/golsp: format logging for the lsp inspector 2018-11-02 22:32:51 +00:00
stream.go internal/jsonrpc2: add telemetry to the rpc system 2019-06-27 03:32:48 +00:00
wire.go internal/jsonrpc2: refactor to enable a more advanced request 2019-06-27 03:33:22 +00:00