e54115a062
The "analyses" cache in lsp/cache.(*Package).GetActionGraph was not getting cleared on errors. This could result in future calls to GetActionGraph waiting on the "ready" channel indefinitely. This in turn caused the goroutine in cacheAndDiagnose to block indefinitely and never send the diagnostic results back. Now we use a defer statement to always close the channel. If we did not succeed, we also clear out the cache entry and set a "succeeded = false" flag to signal waiters that they need to retry. If in the future errors other than context.Canceled/Timeout are possible, this retry behavior may need to be revisited. Fixes golang/go#30786 Change-Id: Icacc9188f1500b00f2178521ce373a2c1363f932 GitHub-Last-Rev: 7c43afd4286a69b0d35a625716e6934c72c4cef5 GitHub-Pull-Request: golang/tools#91 Reviewed-on: https://go-review.googlesource.com/c/tools/+/173977 Reviewed-by: Rebecca Stambler <rstambler@golang.org> Run-TryBot: Rebecca Stambler <rstambler@golang.org> |
||
---|---|---|
benchmark/parse | ||
blog | ||
cmd | ||
container/intsets | ||
cover | ||
go | ||
godoc | ||
imports | ||
internal | ||
playground | ||
present | ||
refactor | ||
.gitattributes | ||
.gitignore | ||
AUTHORS | ||
codereview.cfg | ||
CONTRIBUTING.md | ||
CONTRIBUTORS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
PATENTS | ||
README.md |
Go Tools
This subrepository holds the source for various packages and tools that support the Go programming language.
Some of the tools, godoc
and vet
for example, are included in binary Go
distributions.
Others, including the Go guru
and the test coverage tool, can be fetched with
go get
.
Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs.
Download/Install
The easiest way to install is to run go get -u golang.org/x/tools/...
. You can
also manually git clone the repository to $GOPATH/src/golang.org/x/tools
.
Report Issues / Send Patches
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html.
The main issue tracker for the tools repository is located at https://github.com/golang/go/issues. Prefix your issue with "x/tools/(your subdir):" in the subject line, so it is easy to find.