summaryrefslogtreecommitdiff
path: root/TAO/tao/Transport.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Transport.cpp')
-rw-r--r--TAO/tao/Transport.cpp13
1 files changed, 11 insertions, 2 deletions
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;