summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys/AsynchIOHandler.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-02-11 17:29:42 +0000
committerAlan Conway <aconway@apache.org>2009-02-11 17:29:42 +0000
commit86d5aa7ccc3fb6e9cf23a52e8b2d69aae53692f7 (patch)
treec9474aaa4a191b8ac5aba63a03f45a5c227cf067 /cpp/src/qpid/sys/AsynchIOHandler.cpp
parent67460e0818bd5617cb84a6ae44c33ef8a11ac0a0 (diff)
downloadqpid-python-86d5aa7ccc3fb6e9cf23a52e8b2d69aae53692f7.tar.gz
Fix race condition with read-credit.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743416 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/sys/AsynchIOHandler.cpp')
-rw-r--r--cpp/src/qpid/sys/AsynchIOHandler.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/cpp/src/qpid/sys/AsynchIOHandler.cpp b/cpp/src/qpid/sys/AsynchIOHandler.cpp
index 35b75c1fe8..3bc05e4bf9 100644
--- a/cpp/src/qpid/sys/AsynchIOHandler.cpp
+++ b/cpp/src/qpid/sys/AsynchIOHandler.cpp
@@ -145,8 +145,10 @@ bool AsynchIOHandler::readbuff(AsynchIO& , AsynchIO::BufferBase* buff) {
// Lock and retest credit to make sure we don't race with increasing credit
ScopedLock<Mutex> l(creditLock);
assert(readCredit.get() >= 0);
- if (readCredit.get() == 0)
+ if (readCredit.get() == 0) {
+ aio->stopReading();
return false;
+ }
}
}
return true;