13 #define epicsExportSharedSymbols 35 GetDoneThread::GetDoneThread()
40 GetDoneThread::~GetDoneThread()
46 void GetDoneThread::start()
48 thread = std::tr1::shared_ptr<epicsThread>(
new epicsThread(
57 void GetDoneThread::stop()
63 waitForCommand.signal();
71 if(notifyGetRequester->isOnQueue)
return;
72 notifyGetRequester->isOnQueue =
true;
73 notifyGetQueue.push(notifyGetRequester);
75 waitForCommand.signal();
78 void GetDoneThread::run()
82 waitForCommand.wait();
88 if(!notifyGetQueue.empty())
95 notifyGetRequester = reqPtr.get();
101 if(notifyGetRequester!=
NULL)
104 if(channelGet) channelGet->notifyClient();
108 waitForStop.signal();
TODO only here because of the Lockable.
A lock for multithreading.
std::tr1::weak_ptr< NotifyGetRequester > NotifyGetRequesterWPtr
LIBCOM_API unsigned int epicsStdCall epicsThreadGetStackSize(epicsThreadStackSizeClass size)
std::tr1::shared_ptr< NotifyGetRequester > NotifyGetRequesterPtr
#define epicsThreadPriorityLow
Extended replacement for the Posix exit and atexit routines.
CAChannelGetWPtr channelGet
std::tr1::shared_ptr< CAChannelGet > CAChannelGetPtr
std::tr1::shared_ptr< GetDoneThread > GetDoneThreadPtr