linux: try inotify_init if inotify_init1 returns ENOSYS

The kernel may be older than the kernel headers that libuv is compiled against.
This commit is contained in:
Ben Noordhuis 2012-03-15 01:01:19 +01:00
parent db413f3806
commit 1b6df97690

View File

@ -156,11 +156,16 @@ static void uv__inotify_read(EV_P_ ev_io* w, int revents);
static int new_inotify_fd(void) {
#if HAVE_INOTIFY_INIT1
return inotify_init1(IN_NONBLOCK | IN_CLOEXEC);
#else
int fd;
#if HAVE_INOTIFY_INIT1
fd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC);
if (fd != -1)
return fd;
if (errno != ENOSYS)
return -1;
#endif
if ((fd = inotify_init()) == -1)
return -1;
@ -170,7 +175,6 @@ static int new_inotify_fd(void) {
}
return fd;
#endif
}