diff --git a/unix/syscall_unix_test.go b/unix/syscall_unix_test.go index fd67d8b0..5d31524d 100644 --- a/unix/syscall_unix_test.go +++ b/unix/syscall_unix_test.go @@ -509,16 +509,21 @@ func TestPoll(t *testing.T) { } }() - fds := []unix.PollFd{{Fd: int32(f.Fd()), Events: unix.POLLIN}} - n, err := unix.Poll(fds, timeout) - ok <- true - if err != nil { - t.Errorf("Poll: unexpected error: %v", err) - return - } - if n != 0 { - t.Errorf("Poll: wrong number of events: got %v, expected %v", n, 0) - return + for { + fds := []unix.PollFd{{Fd: int32(f.Fd()), Events: unix.POLLIN}} + n, err := unix.Poll(fds, timeout) + ok <- true + if err == unix.EINTR { + t.Logf("Poll interrupted") + continue + } else if err != nil { + t.Errorf("Poll: unexpected error: %v", err) + return + } + if n != 0 { + t.Errorf("Poll: wrong number of events: got %v, expected %v", n, 0) + } + break } }