Dmitriy Vyukov | 2f6cbc7 | 2012-10-07 22:05:32 +0400 | [diff] [blame] | 1 | // Copyright 2012 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 | // Public race detection API, present iff build with -race. |
| 8 | |
| 9 | package runtime |
| 10 | |
| 11 | import ( |
| 12 | "unsafe" |
| 13 | ) |
| 14 | |
Robert Griesemer | 465b9c3 | 2012-10-30 13:38:01 -0700 | [diff] [blame] | 15 | // RaceDisable disables handling of race events in the current goroutine. |
Dmitriy Vyukov | 2f6cbc7 | 2012-10-07 22:05:32 +0400 | [diff] [blame] | 16 | func RaceDisable() |
| 17 | |
Robert Griesemer | 465b9c3 | 2012-10-30 13:38:01 -0700 | [diff] [blame] | 18 | // RaceEnable re-enables handling of race events in the current goroutine. |
Dmitriy Vyukov | 2f6cbc7 | 2012-10-07 22:05:32 +0400 | [diff] [blame] | 19 | func RaceEnable() |
| 20 | |
| 21 | func RaceAcquire(addr unsafe.Pointer) |
| 22 | func RaceRelease(addr unsafe.Pointer) |
| 23 | func RaceReleaseMerge(addr unsafe.Pointer) |
| 24 | |
Dmitriy Vyukov | 51e89f59 | 2012-11-14 16:51:23 +0400 | [diff] [blame] | 25 | func RaceRead(addr unsafe.Pointer) |
| 26 | func RaceWrite(addr unsafe.Pointer) |
Dmitriy Vyukov | fc80764 | 2013-06-10 22:40:35 +0400 | [diff] [blame] | 27 | func RaceReadRange(addr unsafe.Pointer, len int) |
| 28 | func RaceWriteRange(addr unsafe.Pointer, len int) |
Dmitriy Vyukov | 51e89f59 | 2012-11-14 16:51:23 +0400 | [diff] [blame] | 29 | |
Dmitriy Vyukov | 2f6cbc7 | 2012-10-07 22:05:32 +0400 | [diff] [blame] | 30 | func RaceSemacquire(s *uint32) |
| 31 | func RaceSemrelease(s *uint32) |
Keith Randall | 61dca94 | 2014-06-16 23:03:03 -0700 | [diff] [blame^] | 32 | |
| 33 | // private interface for the runtime |
| 34 | const raceenabled = true |