summaryrefslogtreecommitdiff
path: root/TAO/tao/DynamicInterface
diff options
context:
space:
mode:
authorjohnc <johnc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-09-01 20:30:50 +0000
committerjohnc <johnc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-09-01 20:30:50 +0000
commit2a9eba9cdad08b4bd80860f472e329f2a17e949b (patch)
tree023ee3f72f28a3de6b34c2ea658cb884f71852fd /TAO/tao/DynamicInterface
parent28a8802a5c12d21c2223e08e519b079dde5a5e45 (diff)
downloadATCD-2a9eba9cdad08b4bd80860f472e329f2a17e949b.tar.gz
ChangeLogTag: Mon Sep 1 20:18:51 UTC 2008 Ciju John <johnc at ociweb dot com>
Diffstat (limited to 'TAO/tao/DynamicInterface')
-rw-r--r--TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp b/TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp
index 86757520254..af0170fa6d4 100644
--- a/TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp
+++ b/TAO/tao/DynamicInterface/DII_Invocation_Adapter.cpp
@@ -124,6 +124,9 @@ namespace TAO
throw CORBA::TRANSIENT (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO);
}
+ ACE_GUARD_RETURN (ACE_Lock, ace_mon, *transport->output_cdr_lock ()
+ , TAO_INVOKE_FAILURE);
+
transport->messaging_object ()->out_stream ().reset_byte_order (
request_->_tao_byte_order ());
@@ -133,11 +136,12 @@ namespace TAO
this->exception_list_,
this->request_);
+ ace_mon.release();
Invocation_Status status = synch.remote_invocation (max_wait_time);
- if (status == TAO_INVOKE_RESTART &&
- (synch.reply_status () == GIOP::LOCATION_FORWARD ||
+ if (status == TAO_INVOKE_RESTART &&
+ (synch.reply_status () == GIOP::LOCATION_FORWARD ||
synch.reply_status () == GIOP::LOCATION_FORWARD_PERM))
{
CORBA::Boolean const permanent_forward =