summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-29 19:00:50 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-07-29 19:00:50 +0000
commit29047489699c1054c9aeb9d7d8642f6d236e62e0 (patch)
tree855cbbd2ace4b8dfbd14eda94157bf8ea35b60e5
parent743924e0b9854fbc2b0734f5dfa2b009d1c3384c (diff)
downloadATCD-29047489699c1054c9aeb9d7d8642f6d236e62e0.tar.gz
ChangeLogTag:Sun Jul 29 11:58:51 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a9
-rw-r--r--TAO/tao/Leader_Follower.cpp3
-rw-r--r--TAO/tao/Transport.cpp26
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)
{