Commit 27087022 authored by Dmitriy Vyukov's avatar Dmitriy Vyukov

sync/atomic: fix race instrumentation

R=golang-dev, iant
CC=golang-dev
https://golang.org/cl/6782075
parent cc8bd896
...@@ -165,7 +165,7 @@ func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) { ...@@ -165,7 +165,7 @@ func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) {
func LoadUintptr(addr *uintptr) (val uintptr) { func LoadUintptr(addr *uintptr) (val uintptr) {
runtime.RaceSemacquire(&mtx) runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(val)) runtime.RaceRead(unsafe.Pointer(addr))
runtime.RaceAcquire(unsafe.Pointer(addr)) runtime.RaceAcquire(unsafe.Pointer(addr))
val = *addr val = *addr
runtime.RaceSemrelease(&mtx) runtime.RaceSemrelease(&mtx)
...@@ -198,7 +198,7 @@ func StoreUint64(addr *uint64, val uint64) { ...@@ -198,7 +198,7 @@ func StoreUint64(addr *uint64, val uint64) {
func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) { func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
runtime.RaceSemacquire(&mtx) runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(val)) runtime.RaceRead(unsafe.Pointer(addr))
*addr = val *addr = val
runtime.RaceRelease(unsafe.Pointer(addr)) runtime.RaceRelease(unsafe.Pointer(addr))
runtime.RaceSemrelease(&mtx) runtime.RaceSemrelease(&mtx)
...@@ -206,7 +206,7 @@ func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) { ...@@ -206,7 +206,7 @@ func StorePointer(addr *unsafe.Pointer, val unsafe.Pointer) {
func StoreUintptr(addr *uintptr, val uintptr) { func StoreUintptr(addr *uintptr, val uintptr) {
runtime.RaceSemacquire(&mtx) runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(val)) runtime.RaceRead(unsafe.Pointer(addr))
*addr = val *addr = val
runtime.RaceRelease(unsafe.Pointer(addr)) runtime.RaceRelease(unsafe.Pointer(addr))
runtime.RaceSemrelease(&mtx) runtime.RaceSemrelease(&mtx)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment