diff --git a/modules/libcom/src/osi/epicsThread.cpp b/modules/libcom/src/osi/epicsThread.cpp index 92f833847..cf4fd4df7 100644 --- a/modules/libcom/src/osi/epicsThread.cpp +++ b/modules/libcom/src/osi/epicsThread.cpp @@ -153,11 +153,13 @@ bool epicsThread::exitWait ( const double delay ) throw () if ( this->pThreadDestroyed ) { *this->pThreadDestroyed = true; } - if(!joined) { - { - epicsGuard < epicsMutex > guard ( this->mutex ); - joined = true; - } + bool j; + { + epicsGuard < epicsMutex > guard ( this->mutex ); + j = joined; + joined = true; + } + if(!j) { epicsThreadMustJoin(this->id); } return true;