1
0
mirror of https://github.com/golang/go synced 2024-11-05 14:56:10 -07:00
go/internal/jsonrpc2
Rob Findley 9ffc0ab4ef internal/jsonrpc2: add an idle timeout for stream serving
When running gopls against an automatically started remote instance, we
want the lifecycle of the remote to be detached from that of its
clients, so that it doesn't shut down while clients are still connected.
On the other hand, a gopls process can consume significant resources, so
we don't want it to remain when there are no more connected clients.

The jsonrpc2 package is updated to support the concept of idle timeout:
a duration after which the server is shut down when there are no
connected clients. This is exposed in the gopls serve command via the
-listen.timeout flag.

Update golang/go#34111

Change-Id: Id62b3d4a2fa66de2c9306d130ca431717f01d1e5
Reviewed-on: https://go-review.googlesource.com/c/tools/+/220281
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
2020-02-24 23:06:35 +00:00
..
servertest internal/jsonrpc2: add an idle timeout for stream serving 2020-02-24 23:06:35 +00:00
handler.go internal/lsp: cancel early 2019-10-22 07:49:31 +00:00
jsonrpc2_test.go internal/jsonrpc2: fix invalid invocations of Fatalf in goroutines 2020-02-05 19:51:38 +00:00
jsonrpc2.go internal/jsonrpc2: fix races in cancellation 2020-02-14 14:43:24 +00:00
serve_test.go internal/jsonrpc2: add an idle timeout for stream serving 2020-02-24 23:06:35 +00:00
serve.go internal/jsonrpc2: add an idle timeout for stream serving 2020-02-24 23:06:35 +00:00
stream.go internal/jsonrpc2: add telemetry to the rpc system 2019-06-27 03:32:48 +00:00
wire.go all: fix some staticcheck errors 2020-01-29 04:53:41 +00:00