… | |
… | |
544 | #define EV_TSTAMP_HUGE \ |
544 | #define EV_TSTAMP_HUGE \ |
545 | (sizeof (time_t) >= 8 ? 10000000000000. \ |
545 | (sizeof (time_t) >= 8 ? 10000000000000. \ |
546 | : 0 < (time_t)4294967295 ? 4294967295. \ |
546 | : 0 < (time_t)4294967295 ? 4294967295. \ |
547 | : 2147483647.) \ |
547 | : 2147483647.) \ |
548 | |
548 | |
549 | #define EV_TS_TO_MS(a) a * 1e3 + 0.9999 |
549 | #define EV_TS_TO_MSEC(a) a * 1e3 + 0.9999 |
550 | #define EV_TS_FROM_US(us) us * 1e-6 |
550 | #define EV_TS_FROM_USEC(us) us * 1e-6 |
551 | #define EV_TV_SET(tv,t) do { tv.tv_sec = (long)t; tv.tv_usec = (long)((t - tv.tv_sec) * 1e6); } while (0) |
551 | #define EV_TV_SET(tv,t) do { tv.tv_sec = (long)t; tv.tv_usec = (long)((t - tv.tv_sec) * 1e6); } while (0) |
552 | #define EV_TS_SET(ts,t) do { ts.tv_sec = (long)t; ts.tv_nsec = (long)((t - ts.tv_sec) * 1e9); } while (0) |
552 | #define EV_TS_SET(ts,t) do { ts.tv_sec = (long)t; ts.tv_nsec = (long)((t - ts.tv_sec) * 1e9); } while (0) |
553 | #define EV_TV_GET(tv) ((tv).tv_sec + (tv).tv_usec * 1e-6) |
553 | #define EV_TV_GET(tv) ((tv).tv_sec + (tv).tv_usec * 1e-6) |
554 | #define EV_TS_GET(ts) ((ts).tv_sec + (ts).tv_nsec * 1e-9) |
554 | #define EV_TS_GET(ts) ((ts).tv_sec + (ts).tv_nsec * 1e-9) |
555 | |
555 | |
… | |
… | |
2043 | EV_TS_SET (ts, delay); |
2043 | EV_TS_SET (ts, delay); |
2044 | nanosleep (&ts, 0); |
2044 | nanosleep (&ts, 0); |
2045 | #elif defined _WIN32 |
2045 | #elif defined _WIN32 |
2046 | /* maybe this should round up, as ms is very low resolution */ |
2046 | /* maybe this should round up, as ms is very low resolution */ |
2047 | /* compared to select (µs) or nanosleep (ns) */ |
2047 | /* compared to select (µs) or nanosleep (ns) */ |
2048 | Sleep ((unsigned long)(EV_TS_TO_MS (delay))); |
2048 | Sleep ((unsigned long)(EV_TS_TO_MSEC (delay))); |
2049 | #else |
2049 | #else |
2050 | struct timeval tv; |
2050 | struct timeval tv; |
2051 | |
2051 | |
2052 | /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */ |
2052 | /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */ |
2053 | /* something not guaranteed by newer posix versions, but guaranteed */ |
2053 | /* something not guaranteed by newer posix versions, but guaranteed */ |