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(); }
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(); }