Browse Source

unix: use ppoll to implement Pause on linux/{arm64,riscv64}

Use ppoll instead of re-implementing it using Syscall6(SYS_PPOLL, ...)

Change-Id: I7b3baa00df32dc1fe7ee80755843a492a884938c
Reviewed-on: https://go-review.googlesource.com/c/144171
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Tobias Klauser 7 years ago
parent
commit
5cd93ef61a
2 changed files with 6 additions and 12 deletions
  1. 3 6
      unix/syscall_linux_arm64.go
  2. 3 6
      unix/syscall_linux_riscv64.go

+ 3 - 6
unix/syscall_linux_arm64.go

@@ -191,12 +191,9 @@ 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
+func Pause() error {
+	_, err := ppoll(nil, 0, nil, nil)
+	return err
 }
 
 func Poll(fds []PollFd, timeout int) (n int, err error) {

+ 3 - 6
unix/syscall_linux_riscv64.go

@@ -191,12 +191,9 @@ 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
+func Pause() error {
+	_, err := ppoll(nil, 0, nil, nil)
+	return err
 }
 
 func Poll(fds []PollFd, timeout int) (n int, err error) {