rwcancel: use ppoll on Linux for Android

This is a temporary measure while we wait for
https://go-review.googlesource.com/c/sys/+/352310 to land.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2021-09-26 17:15:58 -06:00
parent 217ac1016b
commit fcc601dbf0
3 changed files with 34 additions and 2 deletions

17
rwcancel/poll_linux.go Normal file
View File

@@ -0,0 +1,17 @@
/* SPDX-License-Identifier: MIT
*
* Copyright (C) 2017-2021 WireGuard LLC. All Rights Reserved.
*/
package rwcancel
import "golang.org/x/sys/unix"
func poll(fds []unix.PollFd, timeout int) (n int, err error) {
var ts *unix.Timespec
if timeout >= 0 {
ts = new(unix.Timespec)
*ts = unix.NsecToTimespec(int64(timeout) * 1e6)
}
return unix.Ppoll(fds, ts, nil)
}