1
0
mirror of https://github.com/golang/go synced 2024-11-23 06:50:05 -07:00

cmd/api: fix race in run.go with multiple builders on a machine

Fixes #9407

Change-Id: I765e8009c7ee22473ac8c2d81c7f6c8ec9866c51
Reviewed-on: https://go-review.googlesource.com/1980
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
This commit is contained in:
Brad Fitzpatrick 2014-12-22 11:16:04 -08:00
parent 47c7cf4357
commit 45eaf500fc

View File

@ -92,7 +92,12 @@ func file(s ...string) string {
// It tries to re-use a go.tools checkout from a previous run if possible,
// else it hg clones it.
func prepGoPath() string {
const tempBase = "go.tools.TMP"
// Use a builder-specific temp directory name, so builders running
// two copies don't trample on each other: https://golang.org/issue/9407
// We don't use io.TempDir or a PID or timestamp here because we do
// want this to be stable between runs, to minimize "git clone" calls
// in the common case.
var tempBase = fmt.Sprintf("go.tools.TMP.%s.%s", runtime.GOOS, runtime.GOARCH)
username := ""
u, err := user.Current()