Check CLOCK_MONOTONIC_* at runtime if needed.

(We need this to avoid compile errors on cygwin.  Fixes github issue
75.)
This commit is contained in:
Nick Mathewson 2013-08-19 10:11:21 -04:00
parent 3807a30b03
commit 911abf3dd2

View File

@ -184,12 +184,13 @@ evutil_configure_monotonic_time_(struct evutil_monotonic_timer *base,
struct timespec ts; struct timespec ts;
#ifdef CLOCK_MONOTONIC_COARSE #ifdef CLOCK_MONOTONIC_COARSE
#if CLOCK_MONOTONIC_COARSE < 0 if (CLOCK_MONOTONIC_COARSE < 0) {
/* Technically speaking, nothing keeps CLOCK_* from being negative (as /* Technically speaking, nothing keeps CLOCK_* from being
* far as I know). This check and the one below make sure that it's * negative (as far as I know). This check and the one below
* safe for us to use -1 as an "unset" value. */ * make sure that it's safe for us to use -1 as an "unset"
#error "I didn't expect CLOCK_MONOTONIC_COARSE to be < 0" * value. */
#endif event_errx(1,"I didn't expect CLOCK_MONOTONIC_COARSE to be < 0");
}
if (! precise && ! fallback) { if (! precise && ! fallback) {
if (clock_gettime(CLOCK_MONOTONIC_COARSE, &ts) == 0) { if (clock_gettime(CLOCK_MONOTONIC_COARSE, &ts) == 0) {
base->monotonic_clock = CLOCK_MONOTONIC_COARSE; base->monotonic_clock = CLOCK_MONOTONIC_COARSE;
@ -202,9 +203,9 @@ evutil_configure_monotonic_time_(struct evutil_monotonic_timer *base,
return 0; return 0;
} }
#if CLOCK_MONOTONIC < 0 if (CLOCK_MONOTONIC < 0) {
#error "I didn't expect CLOCK_MONOTONIC to be < 0" event_errx(1,"I didn't expect CLOCK_MONOTONIC to be < 0");
#endif }
base->monotonic_clock = -1; base->monotonic_clock = -1;
return 0; return 0;