X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/5725bd2cc0e691dadc31bd958f210b1bbcf17c49..5811404f0b86c9fa92c3e0b22505a9bb05f04145:/lib-src/profile.c diff --git a/lib-src/profile.c b/lib-src/profile.c index 3489e49254..0e60377604 100644 --- a/lib-src/profile.c +++ b/lib-src/profile.c @@ -1,5 +1,6 @@ /* profile.c --- generate periodic events for profiling of Emacs Lisp code. - Copyright (C) 1992, 1994, 1999, 2001-2012 Free Software Foundation, Inc. + Copyright (C) 1992, 1994, 1999, 2001-2016 Free Software Foundation, + Inc. Author: Boaz Ben-Zvi @@ -7,8 +8,8 @@ This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +the Free Software Foundation, either version 3 of the License, or (at +your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -28,9 +29,9 @@ along with GNU Emacs. If not, see . */ ** abstraction : a stopwatch ** operations: reset_watch, get_time */ -#include -#define SYSTIME_INLINE EXTERN_INLINE +#define INLINE EXTERN_INLINE +#include #include #include @@ -38,17 +39,17 @@ along with GNU Emacs. If not, see . */ #include #include -static EMACS_TIME TV1; +static struct timespec TV1; static int watch_not_started = 1; /* flag */ static char time_string[INT_STRLEN_BOUND (uintmax_t) + sizeof "." - + LOG10_EMACS_TIME_RESOLUTION]; + + LOG10_TIMESPEC_RESOLUTION]; /* Reset the stopwatch to zero. */ static void reset_watch (void) { - TV1 = current_emacs_time (); + TV1 = current_timespec (); watch_not_started = 0; } @@ -59,12 +60,12 @@ reset_watch (void) static char * get_time (void) { - EMACS_TIME TV2 = sub_emacs_time (current_emacs_time (), TV1); - uintmax_t s = EMACS_SECS (TV2); - int ns = EMACS_NSECS (TV2); + struct timespec TV2 = timespec_sub (current_timespec (), TV1); + uintmax_t s = TV2.tv_sec; + int ns = TV2.tv_nsec; if (watch_not_started) exit (EXIT_FAILURE); /* call reset_watch first ! */ - sprintf (time_string, "%"PRIuMAX".%0*d", s, LOG10_EMACS_TIME_RESOLUTION, ns); + sprintf (time_string, "%"PRIuMAX".%0*d", s, LOG10_TIMESPEC_RESOLUTION, ns); return time_string; }