示例#1
0
void
ProxyOutgoingBase::completed(const Ice::Exception& ex)
{
    Monitor<Mutex>::Lock sync(_monitor);
    //assert(_state <= StateInProgress);
    if(_state > StateInProgress)
    {
        //
        // Response was already received but message
        // didn't get removed first from the connection
        // send message queue so it's possible we can be
        // notified of failures. In this case, ignore the
        // failure and assume the outgoing has been sent.
        //
        assert(_state != StateFailed);
        _sent = true;
        _monitor.notify();
        return;
    }

    _childObserver.failed(ex.ice_id());
    _childObserver.detach();

    _state = StateFailed;
    ICE_RESET_EXCEPTION(_exception, ex.ice_clone());
    _monitor.notify();
}
示例#2
0
void
ConnectionFlushBatch::completed(const Ice::Exception& ex)
{
    Monitor<Mutex>::Lock sync(_monitor);
    _childObserver.failed(ex.ice_id());
    _childObserver.detach();
    ICE_RESET_EXCEPTION(_exception, ex.ice_clone());
    _monitor.notify();
}