return false;
}
- QDBusWriteLocker locker(ConnectAction, d);
+ QDBusLocker locker(ConnectAction, d);
return d->connectSignal(service, path, interface, name, argumentMatch, signature, receiver, slot);
}
if (interface.isEmpty() && name.isEmpty())
return false;
- QDBusWriteLocker locker(DisconnectAction, d);
+ QDBusLocker locker(DisconnectAction, d);
return d->disconnectSignal(service, path, interface, name, argumentMatch, signature, receiver, slot);
}
QStringList pathComponents = path.split(QLatin1Char('/'));
if (pathComponents.last().isEmpty())
pathComponents.removeLast();
- QDBusWriteLocker locker(RegisterObjectAction, d);
+ QDBusLocker locker(RegisterObjectAction, d);
// lower-bound search for where this object should enter in the tree
QDBusConnectionPrivate::ObjectTreeNode *node = &d->rootNode;
return;
QStringList pathComponents = path.split(QLatin1Char('/'));
- QDBusWriteLocker locker(UnregisterObjectAction, d);
+ QDBusLocker locker(UnregisterObjectAction, d);
QDBusConnectionPrivate::ObjectTreeNode *node = &d->rootNode;
int i = 1;
pathComponents.removeLast();
// lower-bound search for where this object should enter in the tree
- QDBusReadLocker lock(ObjectRegisteredAtAction, d);
+ QDBusLocker lock(ObjectRegisteredAtAction, d);
const QDBusConnectionPrivate::ObjectTreeNode *node = &d->rootNode;
int i = 1;
void QDBusConnectionPrivate::closeConnection()
{
- QDBusWriteLocker locker(CloseConnectionAction, this);
+ QDBusLocker locker(CloseConnectionAction, this);
ConnectionMode oldMode = mode;
mode = InvalidMode; // prevent reentrancy
baseService.clear();
void QDBusConnectionPrivate::objectDestroyed(QObject *obj)
{
- QDBusWriteLocker locker(ObjectDestroyedAction, this);
+ QDBusLocker locker(ObjectDestroyedAction, this);
huntAndDestroy(obj, rootNode);
SignalHookHash::iterator sit = signalHooks.begin();
break;
}
- QDBusReadLocker locker(RelaySignalAction, this);
+ QDBusLocker locker(RelaySignalAction, this);
QDBusMessage message = QDBusMessage::createSignal(QLatin1String("/"), interface,
QLatin1String(memberName.constData()));
QDBusMessagePrivate::setParametersValidated(message, true);
void QDBusConnectionPrivate::serviceOwnerChangedNoLock(const QString &name,
const QString &oldOwner, const QString &newOwner)
{
-// QDBusWriteLocker locker(UpdateSignalHookOwnerAction, this);
+// QDBusLocker locker(UpdateSignalHookOwnerAction, this);
WatchedServicesHash::Iterator it = watchedServices.find(name);
if (it == watchedServices.end())
return;
bool semWait;
{
- QDBusReadLocker locker(HandleObjectCallAction, this);
+ QDBusLocker locker(HandleObjectCallAction, this);
if (!findObject(&rootNode, msg.path(), usedLength, result)) {
// qDebug("Call failed: no object found at %s", qPrintable(msg.path()));
sendError(msg, QDBusError::UnknownObject);
key += QLatin1Char(':');
key += msg.interface();
- QDBusReadLocker locker(HandleSignalAction, this);
+ QDBusLocker locker(HandleSignalAction, this);
handleSignal(key, msg); // one try
key.truncate(msg.member().length() + 1); // keep the ':'
return; // don't connect
// add it to our list:
- QDBusWriteLocker locker(ConnectRelayAction, this);
+ QDBusLocker locker(ConnectRelayAction, this);
SignalHookHash::ConstIterator it = signalHooks.constFind(key);
SignalHookHash::ConstIterator end = signalHooks.constEnd();
for ( ; it != end && it.key() == key; ++it) {
return; // don't connect
// remove it from our list:
- QDBusWriteLocker locker(DisconnectRelayAction, this);
+ QDBusLocker locker(DisconnectRelayAction, this);
SignalHookHash::Iterator it = signalHooks.find(key);
SignalHookHash::Iterator end = signalHooks.end();
for ( ; it != end && it.key() == key; ++it) {
{
// acquire a read lock for the cache
- QReadLocker locker(&lock);
+ QMutexLocker locker(&lock);
WatchedServicesHash::ConstIterator it = watchedServices.constFind(serviceName);
if (it != watchedServices.constEnd())
return it->owner;
{
// service must be a unique connection name
if (!interface.isEmpty()) {
- QDBusReadLocker locker(FindMetaObject1Action, this);
+ QDBusLocker locker(FindMetaObject1Action, this);
QDBusMetaObject *mo = cachedMetaObjects.value(interface, 0);
if (mo)
return mo;
QDBusMessage reply = sendWithReply(msg, QDBus::Block);
// it doesn't exist yet, we have to create it
- QDBusWriteLocker locker(FindMetaObject2Action, this);
+ QDBusLocker locker(FindMetaObject2Action, this);
QDBusMetaObject *mo = 0;
if (!interface.isEmpty())
mo = cachedMetaObjects.value(interface, 0);
void QDBusConnectionPrivate::registerService(const QString &serviceName)
{
- QDBusWriteLocker locker(RegisterServiceAction, this);
+ QDBusLocker locker(RegisterServiceAction, this);
registerServiceNoLock(serviceName);
}
void QDBusConnectionPrivate::unregisterService(const QString &serviceName)
{
- QDBusWriteLocker locker(UnregisterServiceAction, this);
+ QDBusLocker locker(UnregisterServiceAction, this);
unregisterServiceNoLock(serviceName);
}
if (serviceName == dbusServiceString())
return false;
- QDBusReadLocker locker(ServiceRegisteredAction, this);
+ QDBusLocker locker(ServiceRegisteredAction, this);
return serviceNames.contains(serviceName);
}
#endif
};
-struct QDBusReadLocker: QDBusLockerBase
+struct QDBusLocker: QDBusLockerBase
{
QDBusConnectionPrivate *self;
ThreadAction action;
- inline QDBusReadLocker(ThreadAction a, QDBusConnectionPrivate *s)
+ inline QDBusLocker(ThreadAction a, QDBusConnectionPrivate *s)
: self(s), action(a)
{
reportThreadAction(action, BeforeLock, self);
- self->lock.lockForRead();
+ self->lock.lock();
reportThreadAction(action, AfterLock, self);
}
- inline ~QDBusReadLocker()
- {
- reportThreadAction(action, BeforeUnlock, self);
- self->lock.unlock();
- reportThreadAction(action, AfterUnlock, self);
- }
-};
-
-struct QDBusWriteLocker: QDBusLockerBase
-{
- QDBusConnectionPrivate *self;
- ThreadAction action;
- inline QDBusWriteLocker(ThreadAction a, QDBusConnectionPrivate *s)
- : self(s), action(a)
- {
- reportThreadAction(action, BeforeLock, self);
- self->lock.lockForWrite();
- reportThreadAction(action, AfterLock, self);
- }
-
- inline ~QDBusWriteLocker()
+ inline ~QDBusLocker()
{
reportThreadAction(action, BeforeUnlock, self);
self->lock.unlock();