print error and error summary

This commit is contained in:
Jeff Hill
2001-05-18 20:03:23 +00:00
parent 83a864997d
commit bf13ffdfe3
2 changed files with 20 additions and 10 deletions

View File

@@ -55,22 +55,27 @@ void myThread::run()
errlogPrintf("threadFunc %d stopping argvalue %p\n",myPrivate,argvalue);
}
static void threadSleepMeasureDelay( const double & delay )
static double threadSleepMeasureDelayError( const double & delay )
{
epicsTime beg = epicsTime::getCurrent();
epicsThreadSleep ( delay );
epicsTime end = epicsTime::getCurrent();
printf ( "epicsThreadSleep ( %10f ) finished after %10f sec\n",
delay, end - beg );
double meas = end - beg;
double error = fabs ( delay - meas );
printf ( "epicsThreadSleep ( %10f ) delay err %10f sec\n",
delay, error );
return error;
}
static void threadSleepTest()
{
double errorSum = 0.0;
for ( int i = 0u; i < 20; i++ ) {
double delay = ldexp ( 1.0 , -i );
threadSleepMeasureDelay ( delay );
errorSum += threadSleepMeasureDelayError ( delay );
}
threadSleepMeasureDelay ( 0.0 );
errorSum += threadSleepMeasureDelayError ( 0.0 );
printf ( "Average error %f sec\n", errorSum / ( i + 1 ) );
}
extern "C" void threadTest(int ntasks,int verbose)