diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-07-29 19:00:50 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-07-29 19:00:50 +0000 |
commit | 29047489699c1054c9aeb9d7d8642f6d236e62e0 (patch) | |
tree | 855cbbd2ace4b8dfbd14eda94157bf8ea35b60e5 | |
parent | 743924e0b9854fbc2b0734f5dfa2b009d1c3384c (diff) | |
download | ATCD-29047489699c1054c9aeb9d7d8642f6d236e62e0.tar.gz |
ChangeLogTag:Sun Jul 29 11:58:51 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 9 | ||||
-rw-r--r-- | TAO/tao/Leader_Follower.cpp | 3 | ||||
-rw-r--r-- | TAO/tao/Transport.cpp | 26 |
3 files changed, 19 insertions, 19 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index b23082f12cb..23676af75f7 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,12 @@ +Sun Jul 29 11:58:51 2001 Carlos O'Ryan <coryan@uci.edu> + + * tao/Leader_Follower.cpp: + If an error is detected while waiting as a follower the loop + should return -1. + + * tao/Transport.cpp: + Merged in some bug fixes from the main trunk. + Sun Jul 29 09:00:57 2001 Carlos O'Ryan <coryan@uci.edu> * tao/LF_Event.cpp: diff --git a/TAO/tao/Leader_Follower.cpp b/TAO/tao/Leader_Follower.cpp index 99de1573511..d5ee2a0a02b 100644 --- a/TAO/tao/Leader_Follower.cpp +++ b/TAO/tao/Leader_Follower.cpp @@ -321,6 +321,9 @@ TAO_Leader_Follower::wait_for_event (TAO_LF_Event *event, if (event->successful ()) return 0; + if (event->error_detected ()) + return -1; + // FALLTHROUGH // We only get here if we woke up but the reply is not // complete yet, time to assume the leader role.... diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index fe458896574..3bb6115c194 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -1,8 +1,6 @@ // -*- C++ -*- // $Id$ - - #include "Transport.h" #include "Exception.h" @@ -29,7 +27,6 @@ ACE_RCSID(tao, Transport, "$Id$") - TAO_Synch_Refcountable::TAO_Synch_Refcountable (ACE_Lock *lock, int refcount) : ACE_Refcountable (refcount) , refcount_lock_ (lock) @@ -887,15 +884,9 @@ TAO_Transport::handle_input_i (TAO_Resume_Handle &rh, if (qd.more_fragments_ || (qd.msg_type_ == TAO_PLUGGABLE_MESSAGE_FRAGMENT)) { - // Make a copy of the message that we have - ACE_Data_Block *ndb = - message_block.data_block ()->clone (); - - // Replace the underlying the datablock - message_block.replace_data_block (ndb); - // Duplicate the node that we have as the node is on stack.. - TAO_Queued_Data *nqd = TAO_Queued_Data::duplicate (qd); + TAO_Queued_Data *nqd = + this->make_queued_data (message_block); return this->consolidate_fragments (nqd, rh); } @@ -1349,8 +1340,9 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, t == TAO_PLUGGABLE_MESSAGE_LOCATEREQUEST) { // Let us resume the handle before we go ahead to process the - // request. This will open up the handle for othe threads. + // request. This will open up the handle for other threads. rh.resume_handle (); + if (this->messaging_object ()->process_request_message ( this, qd) == -1) @@ -1366,10 +1358,13 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, else if (t == TAO_PLUGGABLE_MESSAGE_REPLY || t == TAO_PLUGGABLE_MESSAGE_LOCATEREPLY) { + rh.resume_handle (); + // @@todo: Maybe the input_cdr can be constructed from the // message_block TAO_Pluggable_Reply_Params params (this->orb_core ()); + if (this->messaging_object ()->process_reply_message (params, qd) == -1) { @@ -1401,13 +1396,6 @@ TAO_Transport::process_parsed_messages (TAO_Queued_Data *qd, return -1; } - // If we have received a reply, we resume after dispatching the - // reply. We know that dispatching a reply is bounded and will - // not affect the concurrency at any point. - // @@ todo: need to think what do we win by doing this - // here. Anyway, when the handle_input_i () returns we should be - // fine, right? - rh.resume_handle (); } else if (t == TAO_PLUGGABLE_MESSAGE_MESSAGERROR) { |