o added new ioQue so the server will not wedge one of its clients

when simultaneouly in flow control mode and also asynchronous io
postponed mode.
o simplified the status from the process func because callers should
not need to know how many messages have been sent
This commit is contained in:
Jeff Hill
2009-08-13 23:42:37 +00:00
parent 6c61c0de34
commit 8ace886cfe
+4 -8
View File
@@ -68,12 +68,7 @@ public:
casEventSys ( casCoreClient & );
~casEventSys ();
void show ( unsigned level ) const;
struct processStatus {
casProcCond cond;
unsigned nAccepted;
};
processStatus process (
epicsGuard < casClientMutex > & guard );
casProcCond process ( epicsGuard < casClientMutex > & guard );
void installMonitor ();
void removeMonitor ();
void prepareMonitorForDestroy ( casMonitor & mon );
@@ -97,6 +92,7 @@ public:
private:
mutable evSysMutex mutex;
tsDLList < casEvent > eventLogQue;
tsDLList < casEvent > ioQue;
tsFreeList < casMonEvent, 1024, epicsMutexNOOP > casMonEventFreeList;
casCoreClient & client;
class casEventPurgeEv * pPurgeEvent; // flow control purge complete event
@@ -104,7 +100,7 @@ private:
unsigned maxLogEntries; // max log entries
bool destroyPending;
bool replaceEvents; // replace last existing event on queue
bool dontProcess; // flow ctl is on - dont process event queue
bool dontProcessSubscr; // flow ctl is on - dont process subscr event queue
bool full () const;
casEventSys ( const casEventSys & );
@@ -141,7 +137,7 @@ inline casEventSys::casEventSys ( casCoreClient & clientIn ) :
maxLogEntries ( individualEventEntries ),
destroyPending ( false ),
replaceEvents ( false ),
dontProcess ( false )
dontProcessSubscr ( false )
{
}