summaryrefslogtreecommitdiff
path: root/tubes
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-12-19 23:19:09 +0100
committerStephan Bergmann <sbergman@redhat.com>2016-12-19 23:19:09 +0100
commit30e7c3051dd582307437b82f1dbc21290fd2e916 (patch)
tree78a9aa5a7f36cb4d8f0df160f5ce6709c0da4a91 /tubes
parentdb2ced6c8c42c3fd6bcf77186fdc4c0332928fad (diff)
Fix SolarMutex getting lost across call to g_main_context_iteration
At least with SAL_USE_VCLPLUGIN=gtk, sticking DBG_TESTSOLARMUTEX() before and after this while loop demonstrates that, without the explicit SolarMutexReleaser, the SolarMutex was acquired before the loop but isn't thereafter. Change-Id: I4a97063103193821cc5eb3469484dd3346a60822
Diffstat (limited to 'tubes')
-rw-r--r--tubes/source/manager.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/tubes/source/manager.cxx b/tubes/source/manager.cxx
index aa550058d6f5..a742e2811491 100644
--- a/tubes/source/manager.cxx
+++ b/tubes/source/manager.cxx
@@ -24,6 +24,7 @@
#include <osl/mutex.hxx>
#include <rtl/strbuf.hxx>
#include <rtl/uuid.h>
+#include <vcl/svapp.hxx>
#include <telepathy-glib/telepathy-glib.h>
#include <stdio.h>
@@ -492,7 +493,10 @@ bool TeleManager::createAccountManager()
TeleManagerImpl::mbAccountManagerReadyHandlerInvoked = false;
tp_proxy_prepare_async( pImpl->mpAccountManager, nullptr, TeleManagerImpl::AccountManagerReadyHandler, nullptr);
while (!TeleManagerImpl::mbAccountManagerReadyHandlerInvoked)
+ {
+ SolarMutexReleaser rel;
g_main_context_iteration( nullptr, TRUE);
+ }
return TeleManagerImpl::mbAccountManagerReady;
}