Minor fix: += generate local exception on virtual circuit disconnect.

This commit is contained in:
Ralph Lange
2003-04-23 11:12:28 +00:00
parent cca00a0061
commit a097eebfb1

View File

@@ -1506,11 +1506,18 @@ void cac::initiateAbortShutdown ( tcpiiu & iiu )
{
epicsGuard < callbackMutex > cbGuard ( this->cbMutex );
epicsGuard < cacMutex > guard ( this->mutex );
// Disconnect all channels immediately from the timer thread
// because on certain OS such as HPUX its difficult to
// because on certain OS such as HPUX it's difficult to
// unblock a blocking send() call, and we need immediate
// disconnect notification.
if ( iiu.channelCount() ) {
char hostNameTmp[64];
iiu.hostName ( hostNameTmp, sizeof ( hostNameTmp ) );
genLocalExcep ( cbGuard, *this, ECA_DISCONN, hostNameTmp );
}
iiu.removeAllChannels ( cbGuard, guard, *this );
iiu.initiateAbortShutdown ( cbGuard, guard );
}