diff options
Diffstat (limited to 'deps/jemalloc/src/nstime.c')
-rw-r--r-- | deps/jemalloc/src/nstime.c | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/deps/jemalloc/src/nstime.c b/deps/jemalloc/src/nstime.c deleted file mode 100644 index 0948e29fa..000000000 --- a/deps/jemalloc/src/nstime.c +++ /dev/null @@ -1,194 +0,0 @@ -#include "jemalloc/internal/jemalloc_internal.h" - -#define BILLION UINT64_C(1000000000) - -void -nstime_init(nstime_t *time, uint64_t ns) -{ - - time->ns = ns; -} - -void -nstime_init2(nstime_t *time, uint64_t sec, uint64_t nsec) -{ - - time->ns = sec * BILLION + nsec; -} - -uint64_t -nstime_ns(const nstime_t *time) -{ - - return (time->ns); -} - -uint64_t -nstime_sec(const nstime_t *time) -{ - - return (time->ns / BILLION); -} - -uint64_t -nstime_nsec(const nstime_t *time) -{ - - return (time->ns % BILLION); -} - -void -nstime_copy(nstime_t *time, const nstime_t *source) -{ - - *time = *source; -} - -int -nstime_compare(const nstime_t *a, const nstime_t *b) -{ - - return ((a->ns > b->ns) - (a->ns < b->ns)); -} - -void -nstime_add(nstime_t *time, const nstime_t *addend) -{ - - assert(UINT64_MAX - time->ns >= addend->ns); - - time->ns += addend->ns; -} - -void -nstime_subtract(nstime_t *time, const nstime_t *subtrahend) -{ - - assert(nstime_compare(time, subtrahend) >= 0); - - time->ns -= subtrahend->ns; -} - -void -nstime_imultiply(nstime_t *time, uint64_t multiplier) -{ - - assert((((time->ns | multiplier) & (UINT64_MAX << (sizeof(uint64_t) << - 2))) == 0) || ((time->ns * multiplier) / multiplier == time->ns)); - - time->ns *= multiplier; -} - -void -nstime_idivide(nstime_t *time, uint64_t divisor) -{ - - assert(divisor != 0); - - time->ns /= divisor; -} - -uint64_t -nstime_divide(const nstime_t *time, const nstime_t *divisor) -{ - - assert(divisor->ns != 0); - - return (time->ns / divisor->ns); -} - -#ifdef _WIN32 -# define NSTIME_MONOTONIC true -static void -nstime_get(nstime_t *time) -{ - FILETIME ft; - uint64_t ticks_100ns; - - GetSystemTimeAsFileTime(&ft); - ticks_100ns = (((uint64_t)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; - - nstime_init(time, ticks_100ns * 100); -} -#elif JEMALLOC_HAVE_CLOCK_MONOTONIC_COARSE -# define NSTIME_MONOTONIC true -static void -nstime_get(nstime_t *time) -{ - struct timespec ts; - - clock_gettime(CLOCK_MONOTONIC_COARSE, &ts); - nstime_init2(time, ts.tv_sec, ts.tv_nsec); -} -#elif JEMALLOC_HAVE_CLOCK_MONOTONIC -# define NSTIME_MONOTONIC true -static void -nstime_get(nstime_t *time) -{ - struct timespec ts; - - clock_gettime(CLOCK_MONOTONIC, &ts); - nstime_init2(time, ts.tv_sec, ts.tv_nsec); -} -#elif JEMALLOC_HAVE_MACH_ABSOLUTE_TIME -# define NSTIME_MONOTONIC true -static void -nstime_get(nstime_t *time) -{ - - nstime_init(time, mach_absolute_time()); -} -#else -# define NSTIME_MONOTONIC false -static void -nstime_get(nstime_t *time) -{ - struct timeval tv; - - gettimeofday(&tv, NULL); - nstime_init2(time, tv.tv_sec, tv.tv_usec * 1000); -} -#endif - -#ifdef JEMALLOC_JET -#undef nstime_monotonic -#define nstime_monotonic JEMALLOC_N(n_nstime_monotonic) -#endif -bool -nstime_monotonic(void) -{ - - return (NSTIME_MONOTONIC); -#undef NSTIME_MONOTONIC -} -#ifdef JEMALLOC_JET -#undef nstime_monotonic -#define nstime_monotonic JEMALLOC_N(nstime_monotonic) -nstime_monotonic_t *nstime_monotonic = JEMALLOC_N(n_nstime_monotonic); -#endif - -#ifdef JEMALLOC_JET -#undef nstime_update -#define nstime_update JEMALLOC_N(n_nstime_update) -#endif -bool -nstime_update(nstime_t *time) -{ - nstime_t old_time; - - nstime_copy(&old_time, time); - nstime_get(time); - - /* Handle non-monotonic clocks. */ - if (unlikely(nstime_compare(&old_time, time) > 0)) { - nstime_copy(time, &old_time); - return (true); - } - - return (false); -} -#ifdef JEMALLOC_JET -#undef nstime_update -#define nstime_update JEMALLOC_N(nstime_update) -nstime_update_t *nstime_update = JEMALLOC_N(n_nstime_update); -#endif |