… | |
… | |
59 | # endif |
59 | # endif |
60 | # ifndef EV_USE_MONOTONIC |
60 | # ifndef EV_USE_MONOTONIC |
61 | # define EV_USE_MONOTONIC 1 |
61 | # define EV_USE_MONOTONIC 1 |
62 | # endif |
62 | # endif |
63 | # endif |
63 | # endif |
64 | # elif !defined(EV_USE_CLOCK_SYSCALL) |
64 | # elif !defined EV_USE_CLOCK_SYSCALL |
65 | # define EV_USE_CLOCK_SYSCALL 0 |
65 | # define EV_USE_CLOCK_SYSCALL 0 |
66 | # endif |
66 | # endif |
67 | |
67 | |
68 | # if HAVE_CLOCK_GETTIME |
68 | # if HAVE_CLOCK_GETTIME |
69 | # ifndef EV_USE_MONOTONIC |
69 | # ifndef EV_USE_MONOTONIC |
… | |
… | |
219 | #define _DARWIN_UNLIMITED_SELECT 1 |
219 | #define _DARWIN_UNLIMITED_SELECT 1 |
220 | |
220 | |
221 | /* this block tries to deduce configuration from header-defined symbols and defaults */ |
221 | /* this block tries to deduce configuration from header-defined symbols and defaults */ |
222 | |
222 | |
223 | /* try to deduce the maximum number of signals on this platform */ |
223 | /* try to deduce the maximum number of signals on this platform */ |
224 | #if defined (EV_NSIG) |
224 | #if defined EV_NSIG |
225 | /* use what's provided */ |
225 | /* use what's provided */ |
226 | #elif defined (NSIG) |
226 | #elif defined NSIG |
227 | # define EV_NSIG (NSIG) |
227 | # define EV_NSIG (NSIG) |
228 | #elif defined(_NSIG) |
228 | #elif defined _NSIG |
229 | # define EV_NSIG (_NSIG) |
229 | # define EV_NSIG (_NSIG) |
230 | #elif defined (SIGMAX) |
230 | #elif defined SIGMAX |
231 | # define EV_NSIG (SIGMAX+1) |
231 | # define EV_NSIG (SIGMAX+1) |
232 | #elif defined (SIG_MAX) |
232 | #elif defined SIG_MAX |
233 | # define EV_NSIG (SIG_MAX+1) |
233 | # define EV_NSIG (SIG_MAX+1) |
234 | #elif defined (_SIG_MAX) |
234 | #elif defined _SIG_MAX |
235 | # define EV_NSIG (_SIG_MAX+1) |
235 | # define EV_NSIG (_SIG_MAX+1) |
236 | #elif defined (MAXSIG) |
236 | #elif defined MAXSIG |
237 | # define EV_NSIG (MAXSIG+1) |
237 | # define EV_NSIG (MAXSIG+1) |
238 | #elif defined (MAX_SIG) |
238 | #elif defined MAX_SIG |
239 | # define EV_NSIG (MAX_SIG+1) |
239 | # define EV_NSIG (MAX_SIG+1) |
240 | #elif defined (SIGARRAYSIZE) |
240 | #elif defined SIGARRAYSIZE |
241 | # define EV_NSIG (SIGARRAYSIZE) /* Assume ary[SIGARRAYSIZE] */ |
241 | # define EV_NSIG (SIGARRAYSIZE) /* Assume ary[SIGARRAYSIZE] */ |
242 | #elif defined (_sys_nsig) |
242 | #elif defined _sys_nsig |
243 | # define EV_NSIG (_sys_nsig) /* Solaris 2.5 */ |
243 | # define EV_NSIG (_sys_nsig) /* Solaris 2.5 */ |
244 | #else |
244 | #else |
245 | # error "unable to find value for NSIG, please report" |
245 | # error "unable to find value for NSIG, please report" |
246 | /* to make it compile regardless, just remove the above line, */ |
246 | /* to make it compile regardless, just remove the above line, */ |
247 | /* but consider reporting it, too! :) */ |
247 | /* but consider reporting it, too! :) */ |
… | |
… | |
259 | # define EV_USE_CLOCK_SYSCALL 0 |
259 | # define EV_USE_CLOCK_SYSCALL 0 |
260 | # endif |
260 | # endif |
261 | #endif |
261 | #endif |
262 | |
262 | |
263 | #ifndef EV_USE_MONOTONIC |
263 | #ifndef EV_USE_MONOTONIC |
264 | # if defined (_POSIX_MONOTONIC_CLOCK) && _POSIX_MONOTONIC_CLOCK >= 0 |
264 | # if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0 |
265 | # define EV_USE_MONOTONIC EV_FEATURE_OS |
265 | # define EV_USE_MONOTONIC EV_FEATURE_OS |
266 | # else |
266 | # else |
267 | # define EV_USE_MONOTONIC 0 |
267 | # define EV_USE_MONOTONIC 0 |
268 | # endif |
268 | # endif |
269 | #endif |
269 | #endif |
… | |
… | |
395 | # define EV_USE_INOTIFY 0 |
395 | # define EV_USE_INOTIFY 0 |
396 | #endif |
396 | #endif |
397 | |
397 | |
398 | #if !EV_USE_NANOSLEEP |
398 | #if !EV_USE_NANOSLEEP |
399 | /* hp-ux has it in sys/time.h, which we unconditionally include above */ |
399 | /* hp-ux has it in sys/time.h, which we unconditionally include above */ |
400 | # if !defined(_WIN32) && !defined(__hpux) |
400 | # if !defined _WIN32 && !defined __hpux |
401 | # include <sys/select.h> |
401 | # include <sys/select.h> |
402 | # endif |
402 | # endif |
403 | #endif |
403 | #endif |
404 | |
404 | |
405 | #if EV_USE_INOTIFY |
405 | #if EV_USE_INOTIFY |
… | |
… | |
1332 | #if EV_USE_NANOSLEEP |
1332 | #if EV_USE_NANOSLEEP |
1333 | struct timespec ts; |
1333 | struct timespec ts; |
1334 | |
1334 | |
1335 | EV_TS_SET (ts, delay); |
1335 | EV_TS_SET (ts, delay); |
1336 | nanosleep (&ts, 0); |
1336 | nanosleep (&ts, 0); |
1337 | #elif defined(_WIN32) |
1337 | #elif defined _WIN32 |
1338 | Sleep ((unsigned long)(delay * 1e3)); |
1338 | Sleep ((unsigned long)(delay * 1e3)); |
1339 | #else |
1339 | #else |
1340 | struct timeval tv; |
1340 | struct timeval tv; |
1341 | |
1341 | |
1342 | /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */ |
1342 | /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */ |
… | |
… | |
3741 | } |
3741 | } |
3742 | |
3742 | |
3743 | inline_size int |
3743 | inline_size int |
3744 | infy_newfd (void) |
3744 | infy_newfd (void) |
3745 | { |
3745 | { |
3746 | #if defined (IN_CLOEXEC) && defined (IN_NONBLOCK) |
3746 | #if defined IN_CLOEXEC && defined IN_NONBLOCK |
3747 | int fd = inotify_init1 (IN_CLOEXEC | IN_NONBLOCK); |
3747 | int fd = inotify_init1 (IN_CLOEXEC | IN_NONBLOCK); |
3748 | if (fd >= 0) |
3748 | if (fd >= 0) |
3749 | return fd; |
3749 | return fd; |
3750 | #endif |
3750 | #endif |
3751 | return inotify_init (); |
3751 | return inotify_init (); |