Merge pull request #3460 from zhlhahaha:1927

PiperOrigin-RevId: 324658881
This commit is contained in:
gVisor bot 2020-08-03 12:38:15 -07:00
commit ef11bb936b
4 changed files with 7 additions and 7 deletions

View File

@ -16,9 +16,9 @@
// See waiter_noasm_unsafe.go for a description of waiterUnlock.
//
// func waiterUnlock(g unsafe.Pointer, wg *unsafe.Pointer) bool
// func waiterUnlock(ptr unsafe.Pointer, wg *unsafe.Pointer) bool
TEXT ·waiterUnlock(SB),NOSPLIT,$0-24
MOVQ g+0(FP), DI
MOVQ ptr+0(FP), DI
MOVQ wg+8(FP), SI
MOVQ $·preparingG(SB), AX

View File

@ -16,11 +16,11 @@
// See waiter_noasm_unsafe.go for a description of waiterUnlock.
//
// func waiterUnlock(g unsafe.Pointer, wg *unsafe.Pointer) bool
// func waiterUnlock(ptr unsafe.Pointer, wg *unsafe.Pointer) bool
TEXT ·waiterUnlock(SB),NOSPLIT,$0-24
MOVD wg+8(FP), R0
MOVD $·preparingG(SB), R1
MOVD g+0(FP), R2
MOVD ptr+0(FP), R2
again:
LDAXR (R0), R3
CMP R1, R3

View File

@ -21,4 +21,4 @@ import (
)
// See waiter_noasm_unsafe.go for a description of waiterUnlock.
func waiterUnlock(g unsafe.Pointer, wg *unsafe.Pointer) bool
func waiterUnlock(ptr unsafe.Pointer, wg *unsafe.Pointer) bool

View File

@ -32,8 +32,8 @@ import (
// should be aborted.
//
//go:nosplit
func waiterUnlock(g unsafe.Pointer, wg *unsafe.Pointer) bool {
func waiterUnlock(ptr unsafe.Pointer, wg *unsafe.Pointer) bool {
// The only way this CAS can fail is if a call to Waiter.NotifyPending()
// has replaced *wg with nil, in which case we should not sleep.
return atomic.CompareAndSwapPointer(wg, (unsafe.Pointer)(&preparingG), g)
return atomic.CompareAndSwapPointer(wg, (unsafe.Pointer)(&preparingG), ptr)
}