utp = &ut
}
ret := sys_umtx_op(addr, _UMTX_OP_WAIT_UINT_PRIVATE, val, unsafe.Sizeof(*utp), utp)
- if ret >= 0 || ret == -_EINTR {
+ if ret >= 0 || ret == -_EINTR || ret == -_ETIMEDOUT {
return
}
print("umtx_wait addr=", addr, " val=", val, " ret=", ret, "\n")
var oset sigset
sigprocmask(_SIG_SETMASK, &sigset_all, &oset)
- // TODO: Check for error.
ret := thr_new(¶m, int32(unsafe.Sizeof(param)))
sigprocmask(_SIG_SETMASK, &oset, nil)
if ret < 0 {
TEXT runtime·sys_umtx_op(SB),NOSPLIT,$-4
MOVL $454, AX
INT $0x80
+ JAE 2(PC)
+ NEGL AX
MOVL AX, ret+20(FP)
RET
TEXT runtime·thr_new(SB),NOSPLIT,$-4
MOVL $455, AX
INT $0x80
+ JAE 2(PC)
+ NEGL AX
MOVL AX, ret+8(FP)
RET
MOVL flags+0(FP), BX
MOVL BX, 8(SP)
INT $0x80
+ JAE 2(PC)
+ NEGL AX
MOVL AX, errno+12(FP)
RET