fixes for bugs 133 and 134 in Mantis

This commit is contained in:
Jeff Hill
2004-09-23 23:15:22 +00:00
parent 107f1fa37f
commit 7b7a07c667
28 changed files with 1386 additions and 940 deletions

View File

@@ -28,8 +28,8 @@
#endif
#include <stdexcept>
#include <stdio.h>
#include "epicsExit.h"
#define epicsExportSharedSymbols
@@ -187,11 +187,11 @@ ca_client_context::~ca_client_context ()
}
}
void ca_client_context::destroyChannelPrivate (
oldChannelNotify & chan,
epicsGuard < epicsMutex > & cbGuard )
void ca_client_context::destroyChannel (
epicsGuard < epicsMutex > & cbGuard,
epicsGuard < epicsMutex > & guard,
oldChannelNotify & chan )
{
epicsGuard < epicsMutex > guard ( this->mutex );
try {
chan.eliminateExcessiveSendBacklog (
&cbGuard, guard );
@@ -203,18 +203,6 @@ void ca_client_context::destroyChannelPrivate (
this->oldChannelNotifyFreeList.release ( & chan );
}
void ca_client_context::destroyChannel ( oldChannelNotify & chan )
{
epicsGuard < epicsMutex > * pCBGuard = this->pCallbackGuard.get();
if ( pCBGuard ) {
destroyChannelPrivate ( chan, *pCBGuard );
}
else {
epicsGuard < epicsMutex > cbGuard ( this->cbMutex );
destroyChannelPrivate ( chan, cbGuard );
}
}
void ca_client_context::destroyGetCopy (
epicsGuard < epicsMutex > & guard, getCopy & gc )
{