summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging/Asynch_Invocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Messaging/Asynch_Invocation.cpp')
-rw-r--r--TAO/tao/Messaging/Asynch_Invocation.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/TAO/tao/Messaging/Asynch_Invocation.cpp b/TAO/tao/Messaging/Asynch_Invocation.cpp
index 642d4a4f10c..db7a892ab72 100644
--- a/TAO/tao/Messaging/Asynch_Invocation.cpp
+++ b/TAO/tao/Messaging/Asynch_Invocation.cpp
@@ -72,7 +72,8 @@ namespace TAO
// call.
cdr.message_attributes (this->details_.request_id (),
this->resolver_.stub (),
- TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics::TAO_ASYNCH_CALLBACK),
max_wait_time);
this->write_header (cdr);
@@ -107,7 +108,8 @@ namespace TAO
// paraphernalia within the ORB to fire, like buffering if
// send blocks etc.
s = this->send_message (cdr,
- TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics (TAO_Message_Semantics::TAO_ONEWAY_REQUEST,
+ TAO_Message_Semantics::TAO_ASYNCH_CALLBACK),
max_wait_time);
ace_mon.release();
@@ -138,10 +140,12 @@ namespace TAO
if (s != TAO_INVOKE_SUCCESS)
return s;
- // NOTE: Not sure how things are handles with exclusive muxed
- // strategy.
- if (transport->idle_after_send ())
- (void) this->resolver_.transport_released ();
+ // transport strategy takes care of idling transport or not
+ transport->idle_after_send ();
+ // release transport from resolver in any case since we don't
+ // want the resolver to make the transport idle if the strategy
+ // told it not to
+ this->resolver_.transport_released ();
#if TAO_HAS_INTERCEPTORS == 1
}