summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-04-15 00:05:23 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-04-15 00:05:23 +0000
commit470af8c817d47627bbaf1740a97ecf0749789acc (patch)
tree68f59bd0e6509cc0252d078f48a752eb44f0af96
parentbd094bf8ff5dc7cec4945eeee9f891d78976359c (diff)
downloadATCD-470af8c817d47627bbaf1740a97ecf0749789acc.tar.gz
ChangeLogTag:Sat Apr 14 17:04:21 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a6
-rw-r--r--TAO/tao/Transport.cpp13
2 files changed, 17 insertions, 2 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index 9c8b1de0007..14ffb26c5ba 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,9 @@
+Sat Apr 14 17:04:21 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * tao/Transport.cpp (send_synchronous_message_i):
+ The message was left in the queue even if a problem was detected
+ in the write() operation.
+
Sat Apr 14 17:01:05 2001 Carlos O'Ryan <coryan@uci.edu>
* tao/TAO.dsp:
diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp
index e6aff40f72b..b5d1a3af42c 100644
--- a/TAO/tao/Transport.cpp
+++ b/TAO/tao/Transport.cpp
@@ -434,7 +434,12 @@ TAO_Transport::send_synchronous_message_i (TAO_Stub *stub,
int n = this->drain_queue_i ();
if (n == -1)
- return -1; // Error while sending...
+ {
+ synch_message.remove_from_list (this->head_, this->tail_);
+ ACE_ASSERT (synch_message.next () == 0);
+ ACE_ASSERT (synch_message.prev () == 0);
+ return -1; // Error while sending...
+ }
else if (n == 1)
{
ACE_ASSERT (synch_message.all_data_sent ());
@@ -446,7 +451,11 @@ TAO_Transport::send_synchronous_message_i (TAO_Stub *stub,
ACE_ASSERT (n == 0); // Some data sent, but data remains.
if (synch_message.all_data_sent ())
- return 1;
+ {
+ ACE_ASSERT (synch_message.next () == 0);
+ ACE_ASSERT (synch_message.prev () == 0);
+ return 1;
+ }
// @todo: Check for timeouts!
// if (max_wait_time != 0 && errno == ETIME) return -1;