summaryrefslogtreecommitdiff
path: root/qpid/cpp
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-04-08 14:48:25 +0000
committerGordon Sim <gsim@apache.org>2008-04-08 14:48:25 +0000
commita0d0bae55a8cfde80403f6f1b182d36524a74981 (patch)
tree51792f4cfaa494a42ba43411d9af737530a1a848 /qpid/cpp
parent7e8d03a94d4543c91a3acc9ec7318e04adeb7d3f (diff)
downloadqpid-python-a0d0bae55a8cfde80403f6f1b182d36524a74981.tar.gz
QPID-903: changed read-write lock to mutex (currently recursive) to avoid deadlocking when adding bridge.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@645951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp')
-rw-r--r--qpid/cpp/src/qpid/management/ManagementAgent.cpp8
-rw-r--r--qpid/cpp/src/qpid/management/ManagementAgent.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.cpp b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
index d6a91ab2c1..ee0eb27bf6 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.cpp
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.cpp
@@ -119,7 +119,7 @@ void ManagementAgent::RegisterClass (string packageName,
uint8_t* md5Sum,
ManagementObject::writeSchemaCall_t schemaCall)
{
- RWlock::ScopedWlock writeLock (userLock);
+ Mutex::ScopedLock lock (userLock);
PackageMap::iterator pIter = FindOrAddPackage (packageName);
AddClassLocal (pIter, className, md5Sum, schemaCall);
}
@@ -128,7 +128,7 @@ void ManagementAgent::addObject (ManagementObject::shared_ptr object,
uint64_t /*persistenceId*/,
uint64_t /*idOffset*/)
{
- RWlock::ScopedWlock writeLock (userLock);
+ Mutex::ScopedLock lock (userLock);
uint64_t objectId;
// if (persistenceId == 0)
@@ -219,7 +219,7 @@ void ManagementAgent::SendBuffer (Buffer& buf,
void ManagementAgent::PeriodicProcessing (void)
{
#define BUFSIZE 65536
- RWlock::ScopedWlock writeLock (userLock);
+ Mutex::ScopedLock lock (userLock);
char msgChars[BUFSIZE];
uint32_t contentSize;
string routingKey;
@@ -289,7 +289,7 @@ void ManagementAgent::dispatchCommand (Deliverable& deliverable,
const string& routingKey,
const FieldTable* /*args*/)
{
- RWlock::ScopedRlock readLock (userLock);
+ Mutex::ScopedLock lock (userLock);
Message& msg = ((DeliverableMessage&) deliverable).getMessage ();
if (routingKey.compare (0, 13, "agent.method.") == 0)
diff --git a/qpid/cpp/src/qpid/management/ManagementAgent.h b/qpid/cpp/src/qpid/management/ManagementAgent.h
index ac665eb50d..bd86d4e773 100644
--- a/qpid/cpp/src/qpid/management/ManagementAgent.h
+++ b/qpid/cpp/src/qpid/management/ManagementAgent.h
@@ -136,7 +136,7 @@ class ManagementAgent
static bool enabled;
qpid::framing::Uuid uuid;
- qpid::sys::RWlock userLock;
+ qpid::sys::Mutex userLock;
broker::Timer timer;
broker::Exchange::shared_ptr mExchange;
broker::Exchange::shared_ptr dExchange;