go-sdk/internal/jsonrpc2
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Bryan C. Mills a7abf540a7 internal/jsonrpc2_v2: eliminate a temporary connection leak in (*Server).run
Prior to this CL, (*Server).run only filters out inactive connections
when it accepts a new connection. If existing connections complete,
their associated resources can't be garbage-collected until either the
next connection is accepted or the Listener is closed.

This change moves the open-connection accounting to an explicit hook
passed to newConnection, eliminating the need to call Wait entirely.

For golang/go#46047

Change-Id: I3732cb463fcea0c142f17f2b1510fdfd2dbc81da
Reviewed-on: https://go-review.googlesource.com/c/tools/+/388774
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Cottrell <iancottrell@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-10-31 15:32:14 +00:00
..
conn.go internal/jsonrpc2_v2: eliminate a temporary connection leak in (*Server).run 2022-10-31 15:32:14 +00:00
frame.go internal/jsonrpc2*: remove usage of golang.org/x/xerrors 2022-04-20 16:10:40 +00:00
jsonrpc2.go internal/jsonrpc2_v2: add Func convenience wrappers for the Binder and Preempter interfaces 2022-10-18 21:38:33 +00:00
jsonrpc2_test.go internal/jsonrpc2_v2: eliminate most arbitrary timeouts in tests 2022-10-17 20:15:06 +00:00
messages.go internal/jsonrpc2*: remove usage of golang.org/x/xerrors 2022-04-20 16:10:40 +00:00
net.go internal/jsonrpc2_v2: rework Connection concurrency 2022-10-31 15:02:00 +00:00
serve.go internal/jsonrpc2_v2: eliminate a temporary connection leak in (*Server).run 2022-10-31 15:32:14 +00:00
serve_go116.go internal/jsonrpc2_v2: rework Connection concurrency 2022-10-31 15:02:00 +00:00
serve_pre116.go internal/jsonrpc2_v2: rework Connection concurrency 2022-10-31 15:02:00 +00:00
serve_test.go internal/jsonrpc2_v2: rework Connection concurrency 2022-10-31 15:02:00 +00:00
wire.go internal/jsonrpc2_v2: rework concurrency in idleListener 2022-10-17 20:15:04 +00:00
wire_test.go internal/jsonrpc2_v2: an updated jsonrpc2 library 2021-03-24 21:26:20 +00:00