aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Vyukov <dvyukov@google.com>2012-01-13 22:22:03 +0400
committerDmitriy Vyukov <dvyukov@google.com>2012-01-13 22:22:03 +0400
commita4f7024e0af60c548ec1c066ef77e0b2fda2cb21 (patch)
treecb36a3c90ffb8c499da79c3af91dcff3197c1013
parentc7cdce13f55070383efd8251bce6e95118c32bb2 (diff)
downloadgo-a4f7024e0af60c548ec1c066ef77e0b2fda2cb21.tar.gz
go-a4f7024e0af60c548ec1c066ef77e0b2fda2cb21.zip
cmd/go: fix data race during build
Fixes #2695. R=golang-dev, mpimenov, minux.ma, rsc CC=golang-dev https://golang.org/cl/5545052
-rw-r--r--src/cmd/go/build.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go
index 4a046391db..77a64f406e 100644
--- a/src/cmd/go/build.go
+++ b/src/cmd/go/build.go
@@ -873,6 +873,8 @@ func (b *builder) runOut(dir string, desc string, cmdargs ...interface{}) ([]byt
// mkdir makes the named directory.
func (b *builder) mkdir(dir string) error {
+ b.exec.Lock()
+ defer b.exec.Unlock()
// We can be a little aggressive about being
// sure directories exist. Skip repeated calls.
if b.mkdirCache[dir] {