1
0
mirror of https://github.com/golang/go synced 2024-11-18 12:54:44 -07:00
go/internal/lsp/cache
Heschi Kreinick 065b96d36c internal/lsp/cache: fix race in RunProcessEnvFunc
Changing build flags (-modfile) while work is happening in the
background causes races. Explicitly detect relevant configuration
changes and only modify the ProcessEnv then, when the resolver is
inactive after the call to ClearForNewMod.

This still leaves a very small window for a race: if refreshProcessEnv
has already captured env but not yet started priming the cache, it may
race with the modification. But I don't expect it to be a problem in
practice.

Fixes golang/go#39865.

Change-Id: I31c79f39be55975fee14aa0e548b060c46cdd882
Reviewed-on: https://go-review.googlesource.com/c/tools/+/241317
Run-TryBot: Heschi Kreinick <heschi@google.com>
Reviewed-by: Rebecca Stambler <rstambler@golang.org>
2020-07-07 22:21:32 +00:00
..
analysis.go internal/memoize: add an error return to (*handle).Get 2020-06-24 16:33:19 +00:00
cache.go internal/lsp: support opening single files 2020-07-01 22:10:12 +00:00
check.go internal/lsp/source: speed up completion candidate formatting 2020-07-01 04:11:22 +00:00
error_test.go internal/lsp: refactor error handling code in type-checking 2019-10-21 18:57:46 +00:00
errors.go internal/lsp: read files eagerly 2020-06-11 22:11:59 +00:00
keys.go internal/lsp: decouple client and server debug 2020-06-11 13:49:48 +00:00
load.go internal/lsp/source: add a new symbolStyle configuration option 2020-06-26 17:13:37 +00:00
mod_tidy.go all: update dependencies in go.mod file 2020-07-06 23:19:48 +00:00
mod.go internal/memoize: add an error return to (*handle).Get 2020-06-24 16:33:19 +00:00
os_darwin.go internal/lsp: add a mutex around the view's options 2020-04-02 16:41:49 +00:00
os_windows.go internal/lsp/cache: validate workspace path case 2020-03-27 19:55:53 +00:00
parse.go internal/lsp/source: speed up completion candidate formatting 2020-07-01 04:11:22 +00:00
pkg.go internal/lsp/source: add a new symbolStyle configuration option 2020-06-26 17:13:37 +00:00
session.go internal/lsp/cache: fix race in RunProcessEnvFunc 2020-07-07 22:21:32 +00:00
snapshot.go internal/lsp: support opening single files 2020-07-01 22:10:12 +00:00
view_test.go internal/lsp/cache: validate workspace path case 2020-03-27 19:55:53 +00:00
view.go internal/lsp/cache: fix race in RunProcessEnvFunc 2020-07-07 22:21:32 +00:00