summaryrefslogtreecommitdiff
path: root/ace/Message_Queue_T.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Message_Queue_T.cpp')
-rw-r--r--ace/Message_Queue_T.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/ace/Message_Queue_T.cpp b/ace/Message_Queue_T.cpp
index 1dfba2d3ef2..306fee26771 100644
--- a/ace/Message_Queue_T.cpp
+++ b/ace/Message_Queue_T.cpp
@@ -715,7 +715,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_full_cond (ACE_Guard<ACE_SYNCH_MUTEX_
result = this->not_full_cond_.acquire (timeout);
if (result == -1 && errno == ETIME)
- errno = EWOULDBLOCK;
+ {
+ --this->enqueue_waiters_;
+ errno = EWOULDBLOCK;
+ }
// Save/restore errno.
ACE_Errno_Guard error (errno);
@@ -760,7 +763,10 @@ ACE_Message_Queue<ACE_SYNCH_USE>::wait_not_empty_cond (ACE_Guard<ACE_SYNCH_MUTEX
result = this->not_empty_cond_.acquire (timeout);
if (result == -1 && errno == ETIME)
- errno = EWOULDBLOCK;
+ {
+ --this->dequeue_waiters_;
+ errno = EWOULDBLOCK;
+ }
// Save/restore errno.
ACE_Errno_Guard error (errno);