diff --git a/src/ca/udpiiu.cpp b/src/ca/udpiiu.cpp index 53e7896fd..fb073210d 100644 --- a/src/ca/udpiiu.cpp +++ b/src/ca/udpiiu.cpp @@ -1223,11 +1223,16 @@ void udpiiu::flushRequest ( netiiu::flushRequest ( guard ); } -void udpiiu::eliminateExcessiveSendBacklog ( - epicsGuard < epicsMutex > * pCBGuard, +unsigned udpiiu::requestMessageBytesPending ( epicsGuard < epicsMutex > & guard ) { - netiiu::eliminateExcessiveSendBacklog ( pCBGuard, guard ); + return netiiu::requestMessageBytesPending ( guard ); +} + +void udpiiu::flush ( + epicsGuard < epicsMutex > & guard ) +{ + netiiu::flush ( guard ); } void udpiiu::requestRecvProcessPostponedFlush ( diff --git a/src/ca/udpiiu.h b/src/ca/udpiiu.h index 0f9b191d1..29ed08faf 100644 --- a/src/ca/udpiiu.h +++ b/src/ca/udpiiu.h @@ -189,8 +189,9 @@ private: epicsGuard < epicsMutex > & ) const; bool ca_v42_ok ( epicsGuard < epicsMutex > & ) const; - void eliminateExcessiveSendBacklog ( - epicsGuard < epicsMutex > * pCallbackGuard, + unsigned requestMessageBytesPending ( + epicsGuard < epicsMutex > & mutualExclusionGuard ); + void flush ( epicsGuard < epicsMutex > & mutualExclusionGuard ); void writeRequest ( epicsGuard < epicsMutex > &, nciu &, diff --git a/src/ca/virtualCircuit.h b/src/ca/virtualCircuit.h index 7532ce181..0530aca23 100644 --- a/src/ca/virtualCircuit.h +++ b/src/ca/virtualCircuit.h @@ -124,9 +124,11 @@ public: void flushRequest ( epicsGuard < epicsMutex > & ); - void eliminateExcessiveSendBacklog ( - epicsGuard < epicsMutex > * pCallbackGuard, + unsigned requestMessageBytesPending ( epicsGuard < epicsMutex > & mutualExclusionGuard ); + void flush ( + epicsGuard < epicsMutex > & mutualExclusionGuard ); + void show ( unsigned level ) const; bool setEchoRequestPending ( epicsGuard < epicsMutex > & ); @@ -294,8 +296,8 @@ private: nciu & chan, netSubscription & subscr ); void flushIfRecvProcessRequested ( epicsGuard < epicsMutex > & ); - bool flush ( - epicsGuard < epicsMutex > & ); // only to be called by the send thread + bool sendThreadFlush ( + epicsGuard < epicsMutex > & ); // netiiu stubs void uninstallChanDueToSuccessfulSearchResponse ( diff --git a/src/db/dbChannelIO.cpp b/src/db/dbChannelIO.cpp index a70e2cf7b..510921b64 100644 --- a/src/db/dbChannelIO.cpp +++ b/src/db/dbChannelIO.cpp @@ -69,11 +69,10 @@ void dbChannelIO::destructor ( epicsGuard < epicsMutex > & guard ) } void dbChannelIO::destroy ( - epicsGuard < epicsMutex > & /* callbackControlGuard */, - epicsGuard < epicsMutex > & mutualExclusionGuard ) + epicsGuard < epicsMutex > & guard ) { - mutualExclusionGuard.assertIdenticalMutex ( this->mutex ); - this->serviceIO.destroyChannel ( mutualExclusionGuard, *this ); + guard.assertIdenticalMutex ( this->mutex ); + this->serviceIO.destroyChannel ( guard, *this ); // dont access this pointer after above call because // object nolonger exists } @@ -133,7 +132,6 @@ void dbChannelIO::subscribe ( } void dbChannelIO::ioCancel ( - epicsGuard < epicsMutex > & /* callbackControlGuard */, epicsGuard < epicsMutex > & mutualExclusionGuard, const ioid & id ) { @@ -232,9 +230,14 @@ void dbChannelIO::operator delete ( void * ) __FILE__, __LINE__ ); } -void dbChannelIO::eliminateExcessiveSendBacklog ( - epicsGuard < epicsMutex > * /* pCallbackGuard */, - epicsGuard < epicsMutex > & /* mutualExclusionGuard */ ) +void dbChannelIO::flush ( + epicsGuard < epicsMutex > & ) { } +unsigned dbChannelIO::requestMessageBytesPending ( + epicsGuard < epicsMutex > & ) +{ + return 0u; +} + diff --git a/src/db/dbChannelIO.h b/src/db/dbChannelIO.h index 971ec8922..557abbf13 100644 --- a/src/db/dbChannelIO.h +++ b/src/db/dbChannelIO.h @@ -50,7 +50,6 @@ public: void destructor ( epicsGuard < epicsMutex > & ); void destroy ( - epicsGuard < epicsMutex > & callbackControlGuard, epicsGuard < epicsMutex > & mutualExclusionGuard ); void callReadNotify ( epicsGuard < epicsMutex > &, @@ -80,9 +79,10 @@ private: void initiateConnect ( epicsGuard < epicsMutex > & ); - void eliminateExcessiveSendBacklog ( - epicsGuard < epicsMutex > * pCallbackGuard, - epicsGuard < epicsMutex > & mutualExclusionGuard ); + unsigned requestMessageBytesPending ( + epicsGuard < epicsMutex > & ); + void flush ( + epicsGuard < epicsMutex > & ); ioStatus read ( epicsGuard < epicsMutex > &, unsigned type, unsigned long count, @@ -100,7 +100,6 @@ private: unsigned type, unsigned long count, unsigned mask, cacStateNotify ¬ify, ioid * ); void ioCancel ( - epicsGuard < epicsMutex > & callbackControlGuard, epicsGuard < epicsMutex > & mutualExclusionGuard, const ioid & ); void ioShow (