And simplify the code.
No functional change.
Signed-off-by: Marco Costalba <mcostalba@gmail.com>
#if defined(_WIN32) || defined(_WIN64)
int tm = msec;
#else
#if defined(_WIN32) || defined(_WIN64)
int tm = msec;
#else
- struct timeval t;
- struct timespec abstime, *tm = &abstime;
+ timespec ts, *tm = &ts;
+ uint64_t ms = Time::current_time().msec() + msec;
- gettimeofday(&t, NULL);
-
- abstime.tv_sec = t.tv_sec + (msec / 1000);
- abstime.tv_nsec = (t.tv_usec + (msec % 1000) * 1000) * 1000;
-
- if (abstime.tv_nsec > 1000000000LL)
- {
- abstime.tv_sec += 1;
- abstime.tv_nsec -= 1000000000LL;
- }
+ ts.tv_sec = ms / 1000;
+ ts.tv_nsec = (ms % 1000) * 1000000LL;
#endif
cond_timedwait(sleepCond, sleepLock, tm);
#endif
cond_timedwait(sleepCond, sleepLock, tm);
static Time current_time() { Time t; t.restart(); return t; }
private:
static Time current_time() { Time t; t.restart(); return t; }
private:
};
#endif // !defined(MISC_H_INCLUDED)
};
#endif // !defined(MISC_H_INCLUDED)
#if defined(_WIN32) || defined(_WIN64)
# include <sys/timeb.h>
#if defined(_WIN32) || defined(_WIN64)
# include <sys/timeb.h>
-typedef _timeb my_time_t;
+typedef _timeb sys_time_t;
-inline void system_time(my_time_t* t) { _ftime(t); }
-inline uint64_t time_to_msec(const my_time_t& t) { return t.time * 1000 + t.millitm; }
+inline void system_time(sys_time_t* t) { _ftime(t); }
+inline uint64_t time_to_msec(const sys_time_t& t) { return t.time * 1000 + t.millitm; }
#else
# include <sys/time.h>
#else
# include <sys/time.h>
-typedef timeval my_time_t;
+typedef timeval sys_time_t;
-inline void system_time(my_time_t* t) { gettimeofday(t, NULL); }
-inline uint64_t time_to_msec(const my_time_t& t) { return t.tv_sec * 1000 + t.tv_usec / 1000; }
+inline void system_time(sys_time_t* t) { gettimeofday(t, NULL); }
+inline uint64_t time_to_msec(const sys_time_t& t) { return t.tv_sec * 1000 + t.tv_usec / 1000; }
#endif
#if defined(_WIN64)
#endif
#if defined(_WIN64)