summaryrefslogtreecommitdiff
path: root/ace/Message_Queue_T.cpp
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>2001-03-29 22:37:47 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>2001-03-29 22:37:47 +0000
commit290a97afb2091eb0c5ea92356aa67adcf1b37a5c (patch)
treec728259a9d694105a77e599486608dc2d67312e8 /ace/Message_Queue_T.cpp
parent965fa410646ca397091cf15c80f4120d483eaf8b (diff)
downloadATCD-290a97afb2091eb0c5ea92356aa67adcf1b37a5c.tar.gz
ChangeLogTag:Thu Mar 29 16:16:07 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
Diffstat (limited to 'ace/Message_Queue_T.cpp')
-rw-r--r--ace/Message_Queue_T.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/ace/Message_Queue_T.cpp b/ace/Message_Queue_T.cpp
index 9ac3857896b..e271d3402f0 100644
--- a/ace/Message_Queue_T.cpp
+++ b/ace/Message_Queue_T.cpp
@@ -117,7 +117,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_head (ACE_MESSAGE
DEFUALT_PRIORITY),
-1);
- return this->queue_.enqueue_head (mb, timeout);
+ int result = this->queue_.enqueue_head (mb, timeout);
+ if (result == -1)
+ // Zap the message.
+ mb->release ();
+ return result;
}
// Enqueue an <ACE_MESSAGE_TYPE *> into the <Message_Queue> in
@@ -147,7 +151,12 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_prio (ACE_MESSAGE
DEFUALT_PRIORITY ),
-1);
- return this->queue_.enqueue_prio (mb, timeout);
+ int result = this->queue_.enqueue_prio (mb, timeout);
+ if (result == -1)
+ // Zap the message.
+ mb->release ();
+
+ return result;
}
// Block indefinitely waiting for an item to arrive,
@@ -167,7 +176,11 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE>::enqueue_tail (ACE_MESSAGE
DEFUALT_PRIORITY),
-1);
- return this->queue_.enqueue_tail (mb, timeout);
+ int result = this->queue_.enqueue_tail (mb, timeout);
+ if (result == -1)
+ // Zap the message.
+ mb->release ();
+ return result;
}
// Remove an item from the front of the queue. If timeout == 0 block