version 1.184, 2023/07/19 14:02:27 |
version 1.185, 2023/08/04 06:32:40 |
|
|
{ |
{ |
struct pollfd pfd; |
struct pollfd pfd; |
struct timeval t_start; |
struct timeval t_start; |
int oerrno, r; |
int oerrno, r, have_timeout = (*timeoutp >= 0); |
|
|
pfd.fd = fd; |
pfd.fd = fd; |
pfd.events = events; |
pfd.events = events; |
for (; *timeoutp >= 0;) { |
for (; !have_timeout || *timeoutp >= 0;) { |
monotime_tv(&t_start); |
monotime_tv(&t_start); |
r = poll(&pfd, 1, *timeoutp); |
r = poll(&pfd, 1, *timeoutp); |
oerrno = errno; |
oerrno = errno; |
ms_subtract_diff(&t_start, timeoutp); |
if (have_timeout) |
|
ms_subtract_diff(&t_start, timeoutp); |
errno = oerrno; |
errno = oerrno; |
if (r > 0) |
if (r > 0) |
return 0; |
return 0; |