Such events are legal and should be interpreted as EPOLLERR | EPOLLHUP.
Register a disabled kqueue event in that case as we do not support EPOLLHUP yet.
Required for Linux Steam client.
PR/240590
Differential D22516
Linux epoll: Register events with zero event mask. wulf on Nov 23 2019, 12:13 PM. Authored by Tags None Referenced Files
Subscribers
Details
Such events are legal and should be interpreted as EPOLLERR | EPOLLHUP. Required for Linux Steam client. PR/240590 /* Sample testcase */ #include <sys/epoll.h> #include <assert.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { struct epoll_event event; int epfd; epfd = epoll_create1(EPOLL_CLOEXEC); assert(epfd); event.events = 0; if (epoll_ctl(epfd, EPOLL_CTL_ADD, STDIN_FILENO, &event) != 0) { perror("EPOLL_CTL_ADD failed"); exit(EXIT_FAILURE); } if (epoll_ctl(epfd, EPOLL_CTL_MOD, STDIN_FILENO, &event) != 0) { perror("EPOLL_CTL_MOD failed"); exit(EXIT_FAILURE); } if (epoll_ctl(epfd, EPOLL_CTL_DEL, STDIN_FILENO, &event) != 0) { perror("EPOLL_CTL_DEL failed"); exit(EXIT_FAILURE); } printf("ok\n"); return (EXIT_SUCCESS); }
Diff Detail
|