diff --git a/modules/libcom/src/fdmgr/fdManager.cpp b/modules/libcom/src/fdmgr/fdManager.cpp index 8b8205f0f..8e218deb5 100644 --- a/modules/libcom/src/fdmgr/fdManager.cpp +++ b/modules/libcom/src/fdmgr/fdManager.cpp @@ -72,7 +72,7 @@ struct fdManagerPrivate { // Set to fdreg when in call back // and nill otherwise // - fdReg * pCBReg; + volatile fdReg * pCBReg; fdManager & owner; explicit fdManagerPrivate(fdManager & owner); @@ -82,7 +82,7 @@ struct fdManagerPrivate { fdManagerPrivate::fdManagerPrivate(fdManager & owner) : sleepQuantum(epicsThreadSleepQuantum()), processInProg(false), - pCBReg(0), owner(owner) + pCBReg(NULL), owner(owner) {} inline void fdManagerPrivate::lazyInitTimerQueue () @@ -236,8 +236,10 @@ LIBCOM_API void fdManager::process (double delay) while (priv->pollfds[i].fd != iter->getFD() || priv->pollfds[i].events != PollEvents[iter->getType()]) { + errlogPrintf("fdManager: skipping (removed?) pollfd %d (expected %d)\n", priv->pollfds[i].fd, iter->getFD()); i++; // skip pollfd of removed items if (i >= ioPending) { // skip unknown (inserted?) items + errlogPrintf("fdManager: skipping (inserted?) item %d\n", iter->getFD()); iter = tmp; tmp++; if (!iter.valid()) break; @@ -398,6 +400,7 @@ void fdManager::installReg (fdReg ®) if ( status != 0 ) { throwWithLocation ( fdInterestSubscriptionAlreadyExits () ); } +// errlogPrintf("fdManager::adding fd %d\n", reg.getFD()); } // @@ -442,6 +445,7 @@ void fdManager::removeReg (fdReg ®In) FD_CLR(regIn.getFD(), &priv->fdSets[regIn.getType()]); #endif +// errlogPrintf("fdManager::removing fd %d\n", regIn.getFD()); } //