runtime: correct setNonblock on linux/arm64

The current code uses EOR (exclusive OR), which will result in the O_NONBLOCK
flag being toggled rather than being set. Other implementations use OR, hence
this is likely a bug.

Change-Id: I5dafa9c572452070bd37789c8a731ad6d04a86cd
Reviewed-on: https://go-review.googlesource.com/c/go/+/212766
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Joel Sing 2020-01-07 04:31:23 +11:00
parent f266cce676
commit edf3ec987f
1 changed files with 1 additions and 1 deletions

View File

@ -688,7 +688,7 @@ TEXT runtime·setNonblock(SB),NOSPLIT|NOFRAME,$0-4
MOVD $SYS_fcntl, R8
SVC
MOVD $0x800, R2 // O_NONBLOCK
EOR R0, R2
ORR R0, R2
MOVW fd+0(FP), R0 // fd
MOVD $4, R1 // F_SETFL
MOVD $SYS_fcntl, R8