| // Copyright 2015 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 race | 
 |  | 
 | import ( | 
 | 	"runtime" | 
 | 	"unsafe" | 
 | ) | 
 |  | 
 | const Enabled = true | 
 |  | 
 | func Acquire(addr unsafe.Pointer) { | 
 | 	runtime.RaceAcquire(addr) | 
 | } | 
 |  | 
 | func Release(addr unsafe.Pointer) { | 
 | 	runtime.RaceRelease(addr) | 
 | } | 
 |  | 
 | func ReleaseMerge(addr unsafe.Pointer) { | 
 | 	runtime.RaceReleaseMerge(addr) | 
 | } | 
 |  | 
 | func Disable() { | 
 | 	runtime.RaceDisable() | 
 | } | 
 |  | 
 | func Enable() { | 
 | 	runtime.RaceEnable() | 
 | } | 
 |  | 
 | func Read(addr unsafe.Pointer) { | 
 | 	runtime.RaceRead(addr) | 
 | } | 
 |  | 
 | func Write(addr unsafe.Pointer) { | 
 | 	runtime.RaceWrite(addr) | 
 | } | 
 |  | 
 | func ReadRange(addr unsafe.Pointer, len int) { | 
 | 	runtime.RaceReadRange(addr, len) | 
 | } | 
 |  | 
 | func WriteRange(addr unsafe.Pointer, len int) { | 
 | 	runtime.RaceWriteRange(addr, len) | 
 | } | 
 |  | 
 | func Errors() int { | 
 | 	return runtime.RaceErrors() | 
 | } |