]> Cypherpunks repositories - gostls13.git/commitdiff
sync/atomic: fix race instrumentation
authorDmitriy Vyukov <dvyukov@google.com>
Thu, 15 Nov 2012 17:30:24 +0000 (21:30 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Thu, 15 Nov 2012 17:30:24 +0000 (21:30 +0400)
R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6782075

src/pkg/sync/atomic/race.go

index 049440205d25ccbebc2deaeb44ac06017f513329..242bbf298f068e49c673ec090209136969396a09 100644 (file)
@@ -165,7 +165,7 @@ func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) {
 
 func LoadUintptr(addr *uintptr) (val uintptr) {
        runtime.RaceSemacquire(&mtx)
-       runtime.RaceRead(unsafe.Pointer(val))
+       runtime.RaceRead(unsafe.Pointer(addr))
        runtime.RaceAcquire(unsafe.Pointer(addr))
        val = *addr
        runtime.RaceSemrelease(&mtx)
@@ -198,7 +198,7 @@ func StoreUint64(addr *uint64, val uint64) {
 
 func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
        runtime.RaceSemacquire(&mtx)
-       runtime.RaceRead(unsafe.Pointer(val))
+       runtime.RaceRead(unsafe.Pointer(addr))
        *addr = val
        runtime.RaceRelease(unsafe.Pointer(addr))
        runtime.RaceSemrelease(&mtx)
@@ -206,7 +206,7 @@ func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
 
 func StoreUintptr(addr *uintptr, val uintptr) {
        runtime.RaceSemacquire(&mtx)
-       runtime.RaceRead(unsafe.Pointer(val))
+       runtime.RaceRead(unsafe.Pointer(addr))
        *addr = val
        runtime.RaceRelease(unsafe.Pointer(addr))
        runtime.RaceSemrelease(&mtx)