aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGergely Risko <gergely+context@risko.hu>2009-09-09 11:12:42 +0300
committerGergely Risko <gergely+context@risko.hu>2009-09-09 11:12:42 +0300
commitc5e588c4521fd789abb6c43221a870288c81386a (patch)
treeed0c823845f2ea533a3c29ff18dece8faa03ce91
parent62f9a85f798a1fcdc74b0d25d11220bebed557e5 (diff)
libcontextsubscriber plugins: A fix: Handle the signals from plugins queued, so that we don't end up in a deadlock
(of one thread) when the plugin e.g. emits subscribeFinished() inside subscribe(). Conflicts:
-rw-r--r--libcontextsubscriber/src/provider.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/libcontextsubscriber/src/provider.cpp b/libcontextsubscriber/src/provider.cpp
index 592ae82e..0c8a61db 100644
--- a/libcontextsubscriber/src/provider.cpp
+++ b/libcontextsubscriber/src/provider.cpp
@@ -126,14 +126,14 @@ void Provider::constructPlugin()
handleSignalRouter, SLOT(onValueChanged(QString, QVariant)));
sconnect(plugin, SIGNAL(ready()),
- this, SLOT(onPluginReady()));
+ this, SLOT(onPluginReady()), Qt::QueuedConnection);
sconnect(plugin, SIGNAL(failed(QString)),
- this, SLOT(onPluginFailed(QString)));
+ this, SLOT(onPluginFailed(QString)), Qt::QueuedConnection);
sconnect(plugin, SIGNAL(subscribeFinished(QString)),
- this, SLOT(onPluginSubscribeFinished(QString)));
+ this, SLOT(onPluginSubscribeFinished(QString)), Qt::QueuedConnection);
sconnect(plugin, SIGNAL(subscribeFailed(QString, QString)),
- this, SLOT(onPluginSubscribeFailed(QString, QString)));
+ this, SLOT(onPluginSubscribeFailed(QString, QString)), Qt::QueuedConnection);
sconnect(this, SIGNAL(subscribeFinished(QString)),
handleSignalRouter, SLOT(onSubscribeFinished(QString)));
}