diff options
Diffstat (limited to 'TAO/tao/Messaging/Asynch_Invocation.cpp')
-rw-r--r-- | TAO/tao/Messaging/Asynch_Invocation.cpp | 16 |
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 } |