Author: gsim
Date: Tue Apr 8 07:48:25 2008
New Revision: 645951
URL: http://svn.apache.org/viewvc?rev=645951&view=rev
Log:
QPID-903: changed read-write lock to mutex (currently recursive) to avoid
deadlocking when adding bridge.
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp?rev=645951&r1=645950&r2=645951&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp
(original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.cpp Tue
Apr 8 07:48:25 2008
@@ -119,7 +119,7 @@
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 @@
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::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 @@
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)
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h?rev=645951&r1=645950&r2=645951&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h
(original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/management/ManagementAgent.h Tue Apr
8 07:48:25 2008
@@ -136,7 +136,7 @@
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;