From 470af8c817d47627bbaf1740a97ecf0749789acc Mon Sep 17 00:00:00 2001 From: coryan Date: Sun, 15 Apr 2001 00:05:23 +0000 Subject: ChangeLogTag:Sat Apr 14 17:04:21 2001 Carlos O'Ryan --- TAO/ChangeLogs/ChangeLog-02a | 6 ++++++ TAO/tao/Transport.cpp | 13 +++++++++++-- 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 + + * 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 * 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; -- cgit v1.2.1