summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-05-22 13:42:05 +0000
committerTed Ross <tross@apache.org>2008-05-22 13:42:05 +0000
commitc5376d890443906f47980e4d76f5e7e0589b7f9e (patch)
tree85f849a0a268a0fd8f45bb244cc29cd011b59846 /cpp/src/qpid/broker/Queue.cpp
parent363ceb155f788fe414b29d4e10e5533bac7e7c73 (diff)
downloadqpid-python-c5376d890443906f47980e4d76f5e7e0589b7f9e.tar.gz
QPID-1088
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@659110 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Queue.cpp')
-rw-r--r--cpp/src/qpid/broker/Queue.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Queue.cpp b/cpp/src/qpid/broker/Queue.cpp
index a8a7031757..2c9717caa0 100644
--- a/cpp/src/qpid/broker/Queue.cpp
+++ b/cpp/src/qpid/broker/Queue.cpp
@@ -130,6 +130,7 @@ void Queue::deliver(boost::intrusive_ptr<Message>& msg){
push(msg);
msg->enqueueComplete();
if (mgmtObject.get() != 0) {
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgDepth ();
@@ -137,6 +138,7 @@ void Queue::deliver(boost::intrusive_ptr<Message>& msg){
}
}else {
if (mgmtObject.get() != 0) {
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgDepth ();
@@ -155,6 +157,7 @@ void Queue::recover(boost::intrusive_ptr<Message>& msg){
push(msg);
msg->enqueueComplete(); // mark the message as enqueued
if (mgmtObject.get() != 0) {
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgPersistEnqueues ();
@@ -173,6 +176,7 @@ void Queue::recover(boost::intrusive_ptr<Message>& msg){
void Queue::process(boost::intrusive_ptr<Message>& msg){
push(msg);
if (mgmtObject.get() != 0) {
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_msgTotalEnqueues ();
mgmtObject->inc_byteTotalEnqueues (msg->contentSize ());
mgmtObject->inc_msgTxnEnqueues ();
@@ -363,6 +367,7 @@ void Queue::consume(Consumer& c, bool requestExclusive){
consumerCount++;
if (mgmtObject.get() != 0){
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_consumers ();
}
}
@@ -373,6 +378,7 @@ void Queue::cancel(Consumer& c){
consumerCount--;
if(exclusive) exclusive = 0;
if (mgmtObject.get() != 0){
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->dec_consumers ();
}
}
@@ -403,6 +409,7 @@ void Queue::pop(){
if (policy.get()) policy->dequeued(msg.payload->contentSize());
if (mgmtObject.get() != 0){
+ sys::Mutex::ScopedLock mutex(mgmtObject->getLock());
mgmtObject->inc_msgTotalDequeues ();
mgmtObject->inc_byteTotalDequeues (msg.payload->contentSize());
mgmtObject->dec_msgDepth ();