]> Cypherpunks repositories - gostls13.git/commitdiff
sync/atomic: remove unnecessary race instrumentation in Value
authorDmitriy Vyukov <dvyukov@google.com>
Thu, 18 Sep 2014 04:22:11 +0000 (21:22 -0700)
committerDmitriy Vyukov <dvyukov@google.com>
Thu, 18 Sep 2014 04:22:11 +0000 (21:22 -0700)
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://golang.org/cl/145880043

src/sync/atomic/norace.go [deleted file]
src/sync/atomic/race.go [deleted file]
src/sync/atomic/value.go

diff --git a/src/sync/atomic/norace.go b/src/sync/atomic/norace.go
deleted file mode 100644 (file)
index 1866fd1..0000000
+++ /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 (file)
index a833d9e..0000000
+++ /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)
-}
index c290fdab8502217f70364cebea64163d651d036c..ab46d9a240eb2628a5381222e23b2f9bdf4c207d 100644 (file)
@@ -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 {