Correctly handling remainders when using eoTimer.
This commit is contained in:
parent
60fff427fe
commit
d711369f12
1 changed files with 28 additions and 14 deletions
|
|
@ -83,15 +83,22 @@ class eoTimer
|
||||||
{
|
{
|
||||||
struct rusage _now;
|
struct rusage _now;
|
||||||
getrusage( RUSAGE_SELF, &_now );
|
getrusage( RUSAGE_SELF, &_now );
|
||||||
|
|
||||||
long int result = _now.ru_utime.tv_sec - _start.ru_utime.tv_sec;
|
long int result = _now.ru_utime.tv_sec - _start.ru_utime.tv_sec;
|
||||||
if( _now.ru_utime.tv_sec == _start.ru_utime.tv_sec )
|
long int remainder = _now.ru_utime.tv_usec - _start.ru_utime.tv_usec;
|
||||||
|
if( remainder >= 0 )
|
||||||
{
|
{
|
||||||
uuremainder += _now.ru_utime.tv_usec - _start.ru_utime.tv_usec;
|
uuremainder += remainder;
|
||||||
if( uuremainder > 1000000)
|
} else
|
||||||
{
|
{
|
||||||
++result;
|
uuremainder += ( 1000000 - remainder );
|
||||||
uuremainder -= 1000000;
|
--result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( uuremainder >= 1000000 )
|
||||||
|
{
|
||||||
|
uuremainder -= 1000000;
|
||||||
|
++result;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -109,15 +116,22 @@ class eoTimer
|
||||||
{
|
{
|
||||||
struct rusage _now;
|
struct rusage _now;
|
||||||
getrusage( RUSAGE_SELF, &_now );
|
getrusage( RUSAGE_SELF, &_now );
|
||||||
|
|
||||||
long int result = _now.ru_stime.tv_sec - _start.ru_stime.tv_sec;
|
long int result = _now.ru_stime.tv_sec - _start.ru_stime.tv_sec;
|
||||||
if( _now.ru_stime.tv_sec == _start.ru_stime.tv_sec )
|
long int remainder = _now.ru_stime.tv_usec - _start.ru_stime.tv_usec;
|
||||||
|
if( remainder >= 0 )
|
||||||
{
|
{
|
||||||
usremainder += _now.ru_stime.tv_usec - _start.ru_stime.tv_usec;
|
usremainder += remainder;
|
||||||
if( usremainder > 1000000)
|
} else
|
||||||
{
|
{
|
||||||
++result;
|
usremainder += ( 1000000 - remainder );
|
||||||
usremainder -= 1000000;
|
--result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( usremainder >= 1000000 )
|
||||||
|
{
|
||||||
|
usremainder -= 1000000;
|
||||||
|
++result;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Reference in a new issue