go/internal/lsp/cache
Robert Findley 56116ec015 internal/memoize: don't destroy reference counted handles
Unlike generational handles, when reference counted handles are evicted
from the Store we don't know that they are also no longer in use by
active goroutines. Destroying them causes goroutine leaks.

Also fix a data race because Handle.mu was not acquired in the release
func returned by GetHandle.

Change-Id: Ida7bb6961a035dd24ef8566c7e4faa6890296b5b
Reviewed-on: https://go-review.googlesource.com/c/tools/+/414455
Run-TryBot: Robert Findley <rfindley@google.com>
gopls-CI: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alan Donovan <adonovan@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
2022-06-27 16:29:48 +00:00
..
analysis.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
cache.go internal/lsp/cache: minor simplifications to Symbols 2022-06-21 20:15:42 +00:00
check.go Revert "internal/lsp/cache: reduce critical sections" 2022-06-16 15:42:24 +00:00
debug.go internal/lsp/cache: build a new metadata graph on load 2022-06-16 15:50:09 +00:00
error_test.go internal/lsp/cache: split up sourceDiagnostics 2021-03-02 02:05:13 +00:00
errors.go internal/span: eliminate TokenConverter 2022-06-01 19:19:15 +00:00
graph.go internal/lsp/cache: invalidate reverse closure when loading packages 2022-06-24 21:40:29 +00:00
imports.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
keys.go internal/lsp: decouple client and server debug 2020-06-11 13:49:48 +00:00
load.go internal/lsp/cache: invalidate reverse closure when loading packages 2022-06-24 21:40:29 +00:00
maps.go internal/persistent: change map to use set/get as method names 2022-06-24 13:47:25 +00:00
metadata.go internal/lsp/cache: honor the go.work for computing workspace packages 2022-06-22 14:00:53 +00:00
mod.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
mod_tidy.go internal/lsp/cache: use [256]byte Hash instead of hex digit string 2022-06-13 13:05:07 +00:00
os_darwin.go internal/lsp/cache: clarify an error message about mismatching casing 2021-08-03 17:18:10 +00:00
os_windows.go internal/lsp/cache: clarify an error message about mismatching casing 2021-08-03 17:18:10 +00:00
parse.go internal/memoize: don't destroy reference counted handles 2022-06-27 16:29:48 +00:00
parse_test.go internal/lsp/cache: trim more stuff in ParseExported mode 2021-05-11 17:48:41 +00:00
parsemode_go116.go internal/lsp/cache: use cached parsed files for symbols, if available 2022-05-09 17:04:06 +00:00
parsemode_go117.go internal/lsp/cache: use cached parsed files for symbols, if available 2022-05-09 17:04:06 +00:00
pkg.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
session.go internal/lsp/cache: use persistent map for storing files in the snapshot 2022-06-23 13:23:41 +00:00
snapshot.go internal/lsp/cache: invalidate reverse closure when loading packages 2022-06-24 21:40:29 +00:00
symbols.go internal/lsp/cache: minor simplifications to Symbols 2022-06-21 20:15:42 +00:00
view.go internal/lsp/cache: use persistent map for storing gofiles in the snapshot 2022-06-22 21:10:11 +00:00
view_test.go internal/lsp/cache: always consider go.work files for ws expansion 2022-03-07 16:11:49 +00:00
workspace.go gopls: remove usage of golang.org/x/xerrors 2022-04-20 15:33:22 +00:00
workspace_test.go internal/lsp/cache: construct workspace even when go.work has error 2022-03-03 21:30:30 +00:00