Home | History | Annotate | Download | only in race
      1 // Copyright 2015 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 // +build race
      6 
      7 package race
      8 
      9 import (
     10 	"runtime"
     11 	"unsafe"
     12 )
     13 
     14 const Enabled = true
     15 
     16 func Acquire(addr unsafe.Pointer) {
     17 	runtime.RaceAcquire(addr)
     18 }
     19 
     20 func Release(addr unsafe.Pointer) {
     21 	runtime.RaceRelease(addr)
     22 }
     23 
     24 func ReleaseMerge(addr unsafe.Pointer) {
     25 	runtime.RaceReleaseMerge(addr)
     26 }
     27 
     28 func Disable() {
     29 	runtime.RaceDisable()
     30 }
     31 
     32 func Enable() {
     33 	runtime.RaceEnable()
     34 }
     35 
     36 func Read(addr unsafe.Pointer) {
     37 	runtime.RaceRead(addr)
     38 }
     39 
     40 func Write(addr unsafe.Pointer) {
     41 	runtime.RaceWrite(addr)
     42 }
     43 
     44 func ReadRange(addr unsafe.Pointer, len int) {
     45 	runtime.RaceReadRange(addr, len)
     46 }
     47 
     48 func WriteRange(addr unsafe.Pointer, len int) {
     49 	runtime.RaceWriteRange(addr, len)
     50 }
     51 
     52 func Errors() int {
     53 	return runtime.RaceErrors()
     54 }
     55