82 if ( this->pExpireTmr ) {
102 if ( this->timerList.
first () ) {
104 this->pExpireTmr = this->timerList.
first ();
105 this->timerList.
remove ( *this->pExpireTmr );
106 this->pExpireTmr->curState = timer::stateActive;
109 this->pExpireTmr->
show ( 0u );
114 debugPrintf ( (
"no activity process %f to next\n", delay ) );
126 double delay = DBL_MAX;
128 epicsTimerNotify *pTmpNotify = this->pExpireTmr->pNotify;
129 this->pExpireTmr->pNotify = 0;
130 epicsTimerNotify::expireStatus expStat ( epicsTimerNotify::noRestart );
135 debugPrintf ( (
"%5u expired \"%s\" with error %f sec\n",
136 N++,
typeid ( this->pExpireTmr->notify ).name (),
141 catch ( std::exception & except ) {
142 printExceptMsg ( except.what (),
typeid ( except ) );
145 printExceptMsg (
"non-standard exception",
typeid (
void ) );
153 if ( this->cancelPending ) {
160 this->cancelPending =
false;
161 this->cancelBlockingEvent.signal ();
164 this->pExpireTmr->curState = timer::stateLimbo;
165 if ( this->pExpireTmr->pNotify ) {
169 this->pExpireTmr->privateStart (
170 *this->pExpireTmr->pNotify, this->pExpireTmr->exp );
172 else if ( expStat.restart() ) {
174 this->pExpireTmr->privateStart (
175 *pTmpNotify,
currentTime + expStat.expirationDelay() );
178 this->pExpireTmr = 0;
180 if ( this->timerList.
first () ) {
182 this->pExpireTmr = this->timerList.
first ();
183 this->timerList.
remove ( *this->pExpireTmr );
184 this->pExpireTmr->curState = timer::stateActive;
186 this->pExpireTmr->
show ( 0u );
191 this->processThread = 0;
196 this->processThread = 0;
void show(unsigned int level) const
#define debugPrintf(argsInParen)
LIBCOM_API epicsThreadId epicsStdCall epicsThreadGetIdSelf(void)