diff options
| author | Gordon Sim <gsim@apache.org> | 2008-04-08 14:48:25 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2008-04-08 14:48:25 +0000 |
| commit | f18d1f7f3c4929752353c7beb1c7ae09e3ff3636 (patch) | |
| tree | b52ff63becc03933465d43a049572c81a2f7746d /cpp | |
| parent | 21459845a498376ca2fe6d1666b108d53b6dda4f (diff) | |
| download | qpid-python-f18d1f7f3c4929752353c7beb1c7ae09e3ff3636.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/qpid@645951 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
| -rw-r--r-- | cpp/src/qpid/management/ManagementAgent.cpp | 8 | ||||
| -rw-r--r-- | cpp/src/qpid/management/ManagementAgent.h | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/cpp/src/qpid/management/ManagementAgent.cpp b/cpp/src/qpid/management/ManagementAgent.cpp index d6a91ab2c1..ee0eb27bf6 100644 --- a/cpp/src/qpid/management/ManagementAgent.cpp +++ b/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/cpp/src/qpid/management/ManagementAgent.h b/cpp/src/qpid/management/ManagementAgent.h index ac665eb50d..bd86d4e773 100644 --- a/cpp/src/qpid/management/ManagementAgent.h +++ b/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; |
