summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Outgoing.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-11-23 13:28:08 +0100
committerBenoit Foucher <benoit@zeroc.com>2009-11-23 13:28:08 +0100
commit2c578015edcb36cdc0acd0227295de1dcca1b995 (patch)
treee163980b5dabb43a40089a29fdf8ff47a3e07f1c /cpp/src/Ice/Outgoing.cpp
parentno longer generating inspect method for each Ruby exception (diff)
downloadice-2c578015edcb36cdc0acd0227295de1dcca1b995.tar.bz2
ice-2c578015edcb36cdc0acd0227295de1dcca1b995.tar.xz
ice-2c578015edcb36cdc0acd0227295de1dcca1b995.zip
New AMI mapping
Diffstat (limited to 'cpp/src/Ice/Outgoing.cpp')
-rw-r--r--cpp/src/Ice/Outgoing.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/cpp/src/Ice/Outgoing.cpp b/cpp/src/Ice/Outgoing.cpp
index 165255d8a7d..2a59e8b3796 100644
--- a/cpp/src/Ice/Outgoing.cpp
+++ b/cpp/src/Ice/Outgoing.cpp
@@ -297,7 +297,6 @@ IceInternal::Outgoing::invoke()
if(_exception.get())
{
- assert(!_sent);
_exception->ice_throw();
}
}
@@ -515,13 +514,13 @@ IceInternal::Outgoing::finished(BasicStream& is)
}
void
-IceInternal::Outgoing::finished(const LocalException& ex)
+IceInternal::Outgoing::finished(const LocalException& ex, bool sent)
{
IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_monitor);
assert(_state <= StateInProgress);
-
_state = StateFailed;
_exception.reset(dynamic_cast<LocalException*>(ex.ice_clone()));
+ _sent = sent;
_monitor.notify();
}
@@ -543,7 +542,7 @@ IceInternal::Outgoing::throwUserException()
IceInternal::BatchOutgoing::BatchOutgoing(RequestHandler* handler) :
_handler(handler),
_connection(0),
- _sent(false),
+ _sent(false),
_os(handler->getReference()->getInstance().get())
{
}
@@ -570,7 +569,6 @@ IceInternal::BatchOutgoing::invoke()
if(_exception.get())
{
- assert(!_sent);
_exception->ice_throw();
}
}
@@ -592,7 +590,7 @@ IceInternal::BatchOutgoing::sent(bool notify)
}
void
-IceInternal::BatchOutgoing::finished(const Ice::LocalException& ex)
+IceInternal::BatchOutgoing::finished(const Ice::LocalException& ex, bool)
{
IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_monitor);
_exception.reset(dynamic_cast<LocalException*>(ex.ice_clone()));