X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Ftimeval.h;h=1384848a1cec8f9b19087ce3c83413dd64e651a9;hb=25f78c28faf4f3e059a006c8423b701fe9e9e77c;hp=e8413ff25ca64caad18c3b9aa140ea3a9207e76c;hpb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;p=openvswitch diff --git a/lib/timeval.h b/lib/timeval.h index e8413ff2..1384848a 100644 --- a/lib/timeval.h +++ b/lib/timeval.h @@ -36,6 +36,21 @@ BUILD_ASSERT_DECL(TYPE_IS_INTEGER(time_t)); * ever encounter such a platform. */ BUILD_ASSERT_DECL(TYPE_IS_SIGNED(time_t)); +/* On x86-64 systems, Linux avoids using syscalls for clock_gettime(). + * + * For systems which do invoke a system call we wait at least + * TIME_UPDATE_INTERVAL ms between clock_gettime() calls and cache the time for + * the interim. + * + * For systems which do not invoke a system call, we just call clock_gettime() + * whenever the time is requested. As a result we don't start the background + * SIGALRM timer unless explicitly needed by time_alarm() */ +#if defined __x86_64__ && defined __linux__ +#define CACHE_TIME 0 +#else +#define CACHE_TIME 1 +#endif + #define TIME_MAX TYPE_MAXIMUM(time_t) #define TIME_MIN TYPE_MINIMUM(time_t)