use smart pointers in fdManager
This commit is contained in:
@ -56,7 +56,7 @@ struct fdManagerPrivate {
|
||||
tsDLList < fdReg > activeList;
|
||||
resTable < fdReg, fdRegId > fdTbl;
|
||||
const double sleepQuantum;
|
||||
epicsTimerQueuePassive * pTimerQueue;
|
||||
epics::auto_ptr <epicsTimerQueuePassive> pTimerQueue;
|
||||
bool processInProg;
|
||||
|
||||
#ifdef FDMGR_USE_POLL
|
||||
@ -81,14 +81,14 @@ struct fdManagerPrivate {
|
||||
|
||||
fdManagerPrivate::fdManagerPrivate(fdManager & owner) :
|
||||
sleepQuantum(epicsThreadSleepQuantum()),
|
||||
pTimerQueue(0), processInProg(false),
|
||||
processInProg(false),
|
||||
pCBReg(0), owner(owner)
|
||||
{}
|
||||
|
||||
inline void fdManagerPrivate::lazyInitTimerQueue ()
|
||||
{
|
||||
if (!pTimerQueue) {
|
||||
pTimerQueue = & epicsTimerQueuePassive::create(owner);
|
||||
if (!pTimerQueue.get()) {
|
||||
pTimerQueue.reset(&epicsTimerQueuePassive::create(owner));
|
||||
}
|
||||
}
|
||||
|
||||
@ -138,7 +138,6 @@ LIBCOM_API fdManager::~fdManager()
|
||||
pReg->state = fdReg::limbo;
|
||||
pReg->destroy();
|
||||
}
|
||||
delete priv->pTimerQueue;
|
||||
osiSockRelease();
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,16 @@
|
||||
#ifndef fdManagerH_included
|
||||
#define fdManagerH_included
|
||||
|
||||
#include <memory>
|
||||
namespace epics {
|
||||
#if __cplusplus>=201103L
|
||||
template<typename T>
|
||||
using auto_ptr = std::unique_ptr<T>;
|
||||
#else
|
||||
using std::auto_ptr;
|
||||
#endif
|
||||
}
|
||||
|
||||
#include "libComAPI.h" // reset share lib defines
|
||||
#include "tsDLList.h"
|
||||
#include "resourceLib.h"
|
||||
@ -87,7 +97,7 @@ public:
|
||||
epicsTimer & createTimer ();
|
||||
|
||||
private:
|
||||
struct fdManagerPrivate* priv;
|
||||
epics::auto_ptr <struct fdManagerPrivate> priv;
|
||||
|
||||
void reschedule ();
|
||||
double quantum ();
|
||||
|
Reference in New Issue
Block a user