diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-03-29 22:37:47 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-03-29 22:37:47 +0000 |
commit | 290a97afb2091eb0c5ea92356aa67adcf1b37a5c (patch) | |
tree | c728259a9d694105a77e599486608dc2d67312e8 /ace/Message_Queue_T.cpp | |
parent | 965fa410646ca397091cf15c80f4120d483eaf8b (diff) | |
download | ATCD-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.cpp | 19 |
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 |