// Copyright 2019 The gVisor Authors. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build !race package sync import ( "sync/atomic" "unsafe" ) // RaceEnabled is true if the Go data race detector is enabled. const RaceEnabled = false // RaceDisable has the same semantics as runtime.RaceDisable. func RaceDisable() { } // RaceEnable has the same semantics as runtime.RaceEnable. func RaceEnable() { } // RaceAcquire has the same semantics as runtime.RaceAcquire. func RaceAcquire(addr unsafe.Pointer) { } // RaceRelease has the same semantics as runtime.RaceRelease. func RaceRelease(addr unsafe.Pointer) { } // RaceReleaseMerge has the same semantics as runtime.RaceReleaseMerge. func RaceReleaseMerge(addr unsafe.Pointer) { } // RaceUncheckedAtomicCompareAndSwapUintptr is equivalent to // sync/atomic.CompareAndSwapUintptr, but is not checked by the race detector. // This is necessary when implementing gopark callbacks, since no race context // is available during their execution. func RaceUncheckedAtomicCompareAndSwapUintptr(ptr *uintptr, old, new uintptr) bool { // Use atomic.CompareAndSwapUintptr outside of race builds for // inlinability. return atomic.CompareAndSwapUintptr(ptr, old, new) }