linux: fix epoll_pwait() fallback on arm64
arm64 doesn't have a epoll_wait() system call but a logic error stopped libuv from falling back to epoll_pwait(). This bug was introduced in commit67bb2b5("linux: fix epoll_pwait() regression with < 2.6.19") which sadly exchanged one regression for another. This is a backport of1d8332f(v1.x) PR-URL: https://github.com/libuv/libuv/pull/308 Reviewed-By: Saúl Ibarra Corretgé <saghul@gmail.com>
This commit is contained in:
parent
b52d74e21b
commit
8f931a229a
@ -199,7 +199,7 @@ void uv__io_poll(uv_loop_t* loop, int timeout) {
|
|||||||
if (pthread_sigmask(SIG_BLOCK, &sigset, NULL))
|
if (pthread_sigmask(SIG_BLOCK, &sigset, NULL))
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
if (sigmask != 0 && no_epoll_pwait == 0) {
|
if (no_epoll_wait != 0 || (sigmask != 0 && no_epoll_pwait == 0)) {
|
||||||
nfds = uv__epoll_pwait(loop->backend_fd,
|
nfds = uv__epoll_pwait(loop->backend_fd,
|
||||||
events,
|
events,
|
||||||
ARRAY_SIZE(events),
|
ARRAY_SIZE(events),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user