diff --git a/src/api/dirmonitor/inotify.c b/src/api/dirmonitor/inotify.c index cb38c315..70e536dd 100644 --- a/src/api/dirmonitor/inotify.c +++ b/src/api/dirmonitor/inotify.c @@ -1,8 +1,8 @@ #include -#include #include #include #include +#include struct dirmonitor_internal { @@ -30,11 +30,8 @@ void deinit_dirmonitor(struct dirmonitor_internal* monitor) { int get_changes_dirmonitor(struct dirmonitor_internal* monitor, char* buffer, int length) { - fd_set set; - FD_ZERO(&set); - FD_SET(monitor->fd, &set); - FD_SET(monitor->sig[0], &set); - select(FD_SETSIZE, &set, NULL, NULL, NULL); + struct pollfd fds[2] = { { .fd = monitor->fd, .events = POLLIN | POLLERR, .revents = 0 }, { .fd = monitor->sig[0], .events = POLLIN | POLLERR, .revents = 0 } }; + poll(fds, 2, -1); return read(monitor->fd, buffer, length); }