本文整理匯總了Golang中runtime.RaceAcquire函數的典型用法代碼示例。如果您正苦於以下問題:Golang RaceAcquire函數的具體用法?Golang RaceAcquire怎麽用?Golang RaceAcquire使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了RaceAcquire函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: LoadUintptr
func LoadUintptr(addr *uintptr) (val uintptr) {
runtime.RaceSemacquire(&mtx)
runtime.RaceAcquire(unsafe.Pointer(addr))
val = *addr
runtime.RaceSemrelease(&mtx)
return
}
示例2: LoadPointer
func LoadPointer(addr *unsafe.Pointer) (val unsafe.Pointer) {
runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(addr))
runtime.RaceAcquire(unsafe.Pointer(addr))
val = *addr
runtime.RaceSemrelease(&mtx)
return
}
示例3: LoadUint64
func LoadUint64(addr *uint64) (val uint64) {
_ = *addr
runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(addr))
runtime.RaceAcquire(unsafe.Pointer(addr))
val = *addr
runtime.RaceSemrelease(&mtx)
return
}
示例4: AddUint64
func AddUint64(val *uint64, delta uint64) (new uint64) {
runtime.RaceSemacquire(&mtx)
runtime.RaceAcquire(unsafe.Pointer(val))
*val = *val + delta
new = *val
runtime.RaceReleaseMerge(unsafe.Pointer(val))
runtime.RaceSemrelease(&mtx)
return
}
示例5: SwapPointer
func SwapPointer(addr *unsafe.Pointer, new unsafe.Pointer) (old unsafe.Pointer) {
_ = *addr
runtime.RaceSemacquire(&mtx)
runtime.RaceRead(unsafe.Pointer(addr))
runtime.RaceAcquire(unsafe.Pointer(addr))
old = *addr
*addr = new
runtime.RaceReleaseMerge(unsafe.Pointer(addr))
runtime.RaceSemrelease(&mtx)
return
}
示例6: CompareAndSwapUintptr
func CompareAndSwapUintptr(val *uintptr, old, new uintptr) (swapped bool) {
swapped = false
runtime.RaceSemacquire(&mtx)
runtime.RaceAcquire(unsafe.Pointer(val))
if *val == old {
*val = new
swapped = true
runtime.RaceReleaseMerge(unsafe.Pointer(val))
}
runtime.RaceSemrelease(&mtx)
return
}
示例7: raceAcquire
func raceAcquire(addr unsafe.Pointer) {
runtime.RaceAcquire(addr)
}