summaryrefslogtreecommitdiff
path: root/src/sync
diff options
context:
space:
mode:
authorDmitriy Vyukov <dvyukov@google.com>2014-09-17 21:22:11 -0700
committerDmitriy Vyukov <dvyukov@google.com>2014-09-17 21:22:11 -0700
commit84a8160421233e23fd32dd10742b32e0e23f8267 (patch)
treed91eca82b3fc9217ecc31b1f1d64c2212c0dffcf /src/sync
parent0a6dd6931edd6f2238dcd45358c131b049e69870 (diff)
downloadgo-84a8160421233e23fd32dd10742b32e0e23f8267.tar.gz
sync/atomic: remove unnecessary race instrumentation in Value
It is left from the time when Value was implemented in assembly. Now it is implemented in Go and race detector understands Go. In particular the atomic operations must provide all necessary synchronization. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews, khr, rsc https://codereview.appspot.com/145880043
Diffstat (limited to 'src/sync')
-rw-r--r--src/sync/atomic/norace.go17
-rw-r--r--src/sync/atomic/race.go22
-rw-r--r--src/sync/atomic/value.go6
3 files changed, 0 insertions, 45 deletions
diff --git a/src/sync/atomic/norace.go b/src/sync/atomic/norace.go
deleted file mode 100644
index 1866fd16c..000000000
--- a/src/sync/atomic/norace.go
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build !race
-
-package atomic
-
-import "unsafe"
-
-const raceenabled = false
-
-func raceAcquire(addr unsafe.Pointer) {
-}
-
-func raceReleaseMerge(addr unsafe.Pointer) {
-}
diff --git a/src/sync/atomic/race.go b/src/sync/atomic/race.go
deleted file mode 100644
index a833d9e7f..000000000
--- a/src/sync/atomic/race.go
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2014 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build race
-
-package atomic
-
-import (
- "runtime"
- "unsafe"
-)
-
-const raceenabled = true
-
-func raceAcquire(addr unsafe.Pointer) {
- runtime.RaceAcquire(addr)
-}
-
-func raceReleaseMerge(addr unsafe.Pointer) {
- runtime.RaceReleaseMerge(addr)
-}
diff --git a/src/sync/atomic/value.go b/src/sync/atomic/value.go
index c290fdab8..ab46d9a24 100644
--- a/src/sync/atomic/value.go
+++ b/src/sync/atomic/value.go
@@ -35,9 +35,6 @@ func (v *Value) Load() (x interface{}) {
xp := (*ifaceWords)(unsafe.Pointer(&x))
xp.typ = typ
xp.data = data
- if raceenabled {
- raceAcquire(unsafe.Pointer(v))
- }
return
}
@@ -48,9 +45,6 @@ func (v *Value) Store(x interface{}) {
if x == nil {
panic("sync/atomic: store of nil value into Value")
}
- if raceenabled {
- raceReleaseMerge(unsafe.Pointer(v))
- }
vp := (*ifaceWords)(unsafe.Pointer(v))
xp := (*ifaceWords)(unsafe.Pointer(&x))
for {