mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-07-03 12:27:22 +00:00
improvement to timer_res, allows multiple calls
This was SVN commit r595.
This commit is contained in:
+16
-7
@@ -74,22 +74,31 @@ double get_time()
|
||||
|
||||
double timer_res()
|
||||
{
|
||||
// may take a while to determine, so cache it
|
||||
static double cached_res;
|
||||
if(cached_res != 0.0)
|
||||
return cached_res;
|
||||
|
||||
double res;
|
||||
|
||||
#ifdef HAVE_CLOCK_GETTIME
|
||||
|
||||
struct timespec res;
|
||||
clock_getres(CLOCK_REALTIME, &res);
|
||||
return res.tv_nsec * 1e-9;
|
||||
struct timespec ts;
|
||||
clock_getres(CLOCK_REALTIME, &ts);
|
||||
res = ts.tv_nsec * 1e-9;
|
||||
|
||||
#else
|
||||
|
||||
double t0, t1, t2;
|
||||
t0 = get_time();
|
||||
const double t0 = get_time();
|
||||
double t1, t2;
|
||||
do t1 = get_time(); while(t1 == t0);
|
||||
do t2 = get_time(); while(t2 == t1);
|
||||
|
||||
return t2-t1;
|
||||
res = t2-t1;
|
||||
|
||||
#endif
|
||||
|
||||
cached_res = res;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user