mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-02 23:27:31 -04:00
unix: fix Pause on linux-arm64
Pause is a legacy syscall not available on linux-arm64. Use ppoll with all args as 0 to emulate - this is the way musl libc does Pause when the pause syscall isn't available. With the changes in syscall_linux* and regenerating zsyscall_linux*, this calling Pause on linux-arm64 works and returns EINTR as expected. Change-Id: I88236290313f18c742d826e759e86ff260a8b383 Reviewed-on: https://go-review.googlesource.com/22014 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
324e137580
commit
f64b50fbea
@@ -155,6 +155,14 @@ func Dup2(oldfd int, newfd int) (err error) {
|
||||
return Dup3(oldfd, newfd, 0)
|
||||
}
|
||||
|
||||
func Pause() (err error) {
|
||||
_, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove
|
||||
// these when the deprecated syscalls that the syscall package relies on
|
||||
// are removed.
|
||||
|
||||
Reference in New Issue
Block a user