github.com/ttpreport/gvisor-ligolo@v0.0.0-20240123134145-a858404967ba/pkg/sync/norace_unsafe.go (about) 1 // Copyright 2019 The gVisor Authors. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 //go:build !race 7 // +build !race 8 9 package sync 10 11 import ( 12 "sync/atomic" 13 "unsafe" 14 ) 15 16 // RaceEnabled is true if the Go data race detector is enabled. 17 const RaceEnabled = false 18 19 // RaceDisable has the same semantics as runtime.RaceDisable. 20 func RaceDisable() { 21 } 22 23 // RaceEnable has the same semantics as runtime.RaceEnable. 24 func RaceEnable() { 25 } 26 27 // RaceAcquire has the same semantics as runtime.RaceAcquire. 28 func RaceAcquire(addr unsafe.Pointer) { 29 } 30 31 // RaceRelease has the same semantics as runtime.RaceRelease. 32 func RaceRelease(addr unsafe.Pointer) { 33 } 34 35 // RaceReleaseMerge has the same semantics as runtime.RaceReleaseMerge. 36 func RaceReleaseMerge(addr unsafe.Pointer) { 37 } 38 39 // RaceUncheckedAtomicCompareAndSwapUintptr is equivalent to 40 // sync/atomic.CompareAndSwapUintptr, but is not checked by the race detector. 41 // This is necessary when implementing gopark callbacks, since no race context 42 // is available during their execution. 43 func RaceUncheckedAtomicCompareAndSwapUintptr(ptr *uintptr, old, new uintptr) bool { 44 // Use atomic.CompareAndSwapUintptr outside of race builds for 45 // inlinability. 46 return atomic.CompareAndSwapUintptr(ptr, old, new) 47 }