diff options
-rw-r--r-- | TAO/ChangeLog-99c | 12 | ||||
-rw-r--r-- | TAO/tao/Reply_Dispatcher.cpp | 3 | ||||
-rw-r--r-- | TAO/tao/Stub.cpp | 9 |
3 files changed, 19 insertions, 5 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c index 7a9f5e03bcb..5f987e75436 100644 --- a/TAO/ChangeLog-99c +++ b/TAO/ChangeLog-99c @@ -1,3 +1,15 @@ +Wed Jul 14 16:23:56 1999 Carlos O'Ryan <coryan@cs.wustl.edu> + + * tao/Reply_Dispatcher.cpp: + Use new CDR_Stream methods to efficiently steal the contents + from one CDR stream into another (without any extra memory + allocations). + + * tao/Stub.cpp: + Removed unnecesary lock, updated comments in + relative_rountrip_timeout() with respect to locking because it + is a bit suttle. + Wed Jul 14 15:35:51 1999 Irfan Pyarali <irfan@cs.wustl.edu> * tao/ORB.cpp: set_unexpected() is declared in unexpect.h on MVS. diff --git a/TAO/tao/Reply_Dispatcher.cpp b/TAO/tao/Reply_Dispatcher.cpp index 372cc7e3061..54de0dc3963 100644 --- a/TAO/tao/Reply_Dispatcher.cpp +++ b/TAO/tao/Reply_Dispatcher.cpp @@ -68,8 +68,7 @@ TAO_Synch_Reply_Dispatcher::dispatch_reply (CORBA::ULong reply_status, this->reply_ctx_.replace (max, len, context_list, 1); // Steal the buffer so that no copying is done. - this->reply_cdr_.reset (message_state->cdr.steal_contents (), - message_state->cdr.byte_order ()); + this->reply_cdr_.steal_from (message_state->cdr); return 1; } diff --git a/TAO/tao/Stub.cpp b/TAO/tao/Stub.cpp index 811bf08043d..339b5847181 100644 --- a/TAO/tao/Stub.cpp +++ b/TAO/tao/Stub.cpp @@ -834,14 +834,14 @@ TAO_Stub::get_client_policy ( POA_Messaging::RelativeRoundtripTimeoutPolicy* TAO_Stub::relative_roundtrip_timeout (void) { - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, guard, - this->refcount_lock_, - 0); + // No need to lock, the stub only changes its policies at + // construction time... POA_Messaging::RelativeRoundtripTimeoutPolicy* result = 0; if (this->policies_ != 0) result = this->policies_->relative_roundtrip_timeout (); + // No need to lock, the object is in TSS storage.... if (result == 0) { TAO_Policy_Current &policy_current = @@ -849,6 +849,9 @@ TAO_Stub::relative_roundtrip_timeout (void) result = policy_current.relative_roundtrip_timeout (); } + // @@ Must lock, but is is harder to implement than just modifying + // this call: the ORB does take a lock to modify the policy + // manager if (result == 0) { TAO_Policy_Manager *policy_manager = |