Comment 7 for bug 541316

Revision history for this message
Jeff Hill (johill-lanl) wrote :

the client lib has this logic to prevent sending the channel delete message to the server if the channel isn't yet installed there

void nciu::destroy (
    epicsGuard < epicsMutex > & guard )
{
    while ( baseNMIU * pNetIO = this->eventq.first () ) {
        assert ( this->cacCtx.destroyIO (
            guard, pNetIO->getId (), *this ) );
    }

    // if the claim reply has not returned yet then we will issue
    // the clear channel request to the server when the claim reply
    // arrives and there is no matching nciu in the client
    if ( this->channelNode::isInstalledInServer ( guard ) ) {
        this->getPIIU(guard)->clearChannelRequest (
            guard, this->sid, this->id );
    }
    this->piiu->uninstallChan ( guard, *this );
    this->cacCtx.destroyChannel ( guard, *this );
}