From 5fcbe96c43a70deab3d0ec9af3ecec6c906d245d Mon Sep 17 00:00:00 2001 From: Wolf Bergenheim Date: Fri, 28 May 2010 11:19:21 +0300 Subject: Fixed bug in trying to register too many times when the first acquire is called often. --- libresourceqt/src/resource-engine.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libresourceqt/src/resource-engine.cpp') diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index 6489a53..e562e47 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -20,7 +20,7 @@ static void handleAdviceMessage(resmsg_t *msg, resset_t *rs, void *data); ResourceEngine::ResourceEngine(ResourceSet *resourceSet) : QObject(), connected(false), resourceSet(resourceSet), libresourceSet(NULL), requestId(0), messageMap(), connectionMode(0), - identifier(resourceSet->id()), aboutToBeDeleted(false) + identifier(resourceSet->id()), aboutToBeDeleted(false), isConnecting(false) { if (resourceSet->alwaysGetReply()) { connectionMode += RESMSG_MODE_ALWAYS_REPLY; @@ -205,6 +205,11 @@ bool ResourceEngine::connectToManager() { qDebug("ResourceEngine(%d)::%s() - **************** locking....", identifier, __FUNCTION__); QMutexLocker locker(&mutex); + if (isConnecting) { + qDebug("ResourceEngine::%s().... allready connecting, ignoring request", __FUNCTION__); + return true; + } + isConnecting = true; resmsg_t resourceMessage; memset(&resourceMessage, 0, sizeof(resmsg_t)); resourceMessage.record.type = RESMSG_REGISTER; @@ -373,6 +378,7 @@ void ResourceEngine::handleStatusMessage(quint32 requestNo) if (originalMessageType == RESMSG_REGISTER) { qDebug("ResourceEngine(%d) - connected!", identifier); connected = true; + isConnecting = false; emit connectedToManager(); messageMap.remove(requestNo); } @@ -405,6 +411,11 @@ bool ResourceEngine::isConnectedToManager() return connected; } +bool ResourceEngine::isConnectingToManager() +{ + return isConnecting; +} + bool ResourceEngine::acquireResources() { qDebug("ResourceEngine(%d)::%s() - **************** locking....", identifier, __FUNCTION__); -- cgit v1.2.3 From 578e49d52769295998dd51d98cca85fe141f3ad0 Mon Sep 17 00:00:00 2001 From: Janos Kovacs Date: Mon, 7 Jun 2010 13:30:20 +0300 Subject: use system bus for resource management --- libresourceqt/src/resource-engine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libresourceqt/src/resource-engine.cpp') diff --git a/libresourceqt/src/resource-engine.cpp b/libresourceqt/src/resource-engine.cpp index e562e47..694d351 100644 --- a/libresourceqt/src/resource-engine.cpp +++ b/libresourceqt/src/resource-engine.cpp @@ -58,9 +58,9 @@ bool ResourceEngine::initialize() if (ResourceEngine::libresourceConnection == NULL) { dbus_error_init(&dbusError); - dbusConnection = dbus_bus_get(DBUS_BUS_SESSION, &dbusError); + dbusConnection = dbus_bus_get(DBUS_BUS_SYSTEM, &dbusError); if (dbus_error_is_set(&dbusError)) { - qDebug("Error getting the session bus: %s", dbusError.message); + qDebug("Error getting the system bus: %s", dbusError.message); dbus_error_free(&dbusError); return false; } -- cgit v1.2.3