many changes associated will disconnecting the channel but not disconnecting

the circuit
This commit is contained in:
Jeff Hill
2004-01-15 01:42:49 +00:00
parent 409aa721b9
commit 60a797048a
37 changed files with 1142 additions and 883 deletions
+10 -7
View File
@@ -65,15 +65,16 @@ void dbChannelIO::destructor ( epicsGuard < epicsMutex > & guard )
this->~dbChannelIO ();
}
void dbChannelIO::destroy ( epicsGuard < epicsMutex > & guard )
void dbChannelIO::destroy (
epicsGuard < epicsMutex > & callbackControlGuard,
epicsGuard < epicsMutex > & mutualExclusionGuard )
{
guard.assertIdenticalMutex ( this->mutex );
this->serviceIO.destroyChannel ( guard, *this );
mutualExclusionGuard.assertIdenticalMutex ( this->mutex );
this->serviceIO.destroyChannel ( mutualExclusionGuard, *this );
// dont access this pointer after above call because
// object nolonger exists
}
cacChannel::ioStatus dbChannelIO::read (
epicsGuard < epicsMutex > & guard, unsigned type,
unsigned long count, cacReadNotify & notify, ioid * )
@@ -129,10 +130,12 @@ void dbChannelIO::subscribe (
}
void dbChannelIO::ioCancel (
epicsGuard < epicsMutex > & guard, const ioid & id )
epicsGuard < epicsMutex > & callbackControlGuard,
epicsGuard < epicsMutex > & mutualExclusionGuard,
const ioid & id )
{
guard.assertIdenticalMutex ( this->mutex );
this->serviceIO.ioCancel ( guard, *this, id );
mutualExclusionGuard.assertIdenticalMutex ( this->mutex );
this->serviceIO.ioCancel ( mutualExclusionGuard, *this, id );
}
void dbChannelIO::ioShow (