From 13dd754a8c0113bebc0ad65def80d4caf5fc9b60 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Tue, 18 Jun 2013 11:26:37 -0700 Subject: Suggested changes to counting time in Abc_Clock() --- src/misc/util/abc_global.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/misc/util/abc_global.h b/src/misc/util/abc_global.h index 5d6a8aeb..d9aa9701 100644 --- a/src/misc/util/abc_global.h +++ b/src/misc/util/abc_global.h @@ -271,18 +271,18 @@ static inline int Abc_Lit2LitL( int * pMap, int Lit ) { return Abc_LitNo typedef ABC_INT64_T abctime; static inline abctime Abc_Clock() { - static abctime PeriodNum = 0; - static clock_t Period = ((abctime)1 << 30); - clock_t ClockTime = clock(); - if ( ClockTime >= Period ) - { - ClockTime -= Period; - PeriodNum++; - } - return PeriodNum * Period + ClockTime; +#if defined(LIN) || defined(LIN64) + struct timespec ts; + if ( clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts) < 0 ) + return (abctime)-1; + abctime res = ((abctime) ts.tv_sec) * CLOCKS_PER_SEC; + res += (((abctime) ts.tv_nsec) * CLOCKS_PER_SEC) / 1000000000; + return res; +#else + return (abctime) clock(); +#endif } - // bridge communication #define BRIDGE_NETLIST 106 #define BRIDGE_ABS_NETLIST 107 -- cgit v1.2.3