summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2014-03-13 21:55:31 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-03-22 15:03:14 +0000
commit7317d3132ab816a4bfa394fd93f55e0d12e6d6e6 (patch)
tree8ee72728c98f6262d41a8f3c6783dc23d86ac2ec /vcl
parenta8e64a0a017ba98fbff96862deca9b3d1970e0eb (diff)
Revert "Rewrite Qt4 based nested yield mutex locking."
This reverts the unx/kde4/KDEXLib.cxx part of commit 13a34f4c6307d1bd2443cbf3fbd83bfdd8cdbafb. Conflicts: vcl/unx/kde4/KDE4FilePicker.cxx vcl/unx/kde4/KDEXLib.cxx (cherry picked from commit daf011870efae282244c0298494820d9a0c6d3bc) Change-Id: I4075fc26d54e5abb2e1cdb535d84f16c8fd3df09 Reviewed-on: https://gerrit.libreoffice.org/8705 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/kde4/KDEXLib.cxx17
1 files changed, 3 insertions, 14 deletions
diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx
index 6bd6c1a61675..e08856ead14a 100644
--- a/vcl/unx/kde4/KDEXLib.cxx
+++ b/vcl/unx/kde4/KDEXLib.cxx
@@ -301,9 +301,6 @@ void KDEXLib::socketNotifierActivated( int fd )
void KDEXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
{
- // Nested yield loop counter.
- static int loop_depth = 0;
-
if( eventLoopType == LibreOfficeEventLoop )
{
if( qApp->thread() == QThread::currentThread())
@@ -317,21 +314,13 @@ void KDEXLib::Yield( bool bWait, bool bHandleAllCurrentEvents )
// if we are the main thread (which is where the event processing is done),
// good, just do it
- if( qApp->thread() == QThread::currentThread()) {
- // Release the yield lock before entering a nested loop.
- if (loop_depth > 0)
- SalYieldMutexReleaser aReleaser;
- loop_depth++;
+ if( qApp->thread() == QThread::currentThread())
processYield( bWait, bHandleAllCurrentEvents );
- loop_depth--;
- }
- else {
+ else
+ {
// we were called from another thread;
// release the yield lock to prevent deadlock.
SalYieldMutexReleaser aReleaser;
-
- // if this deadlocks, event processing needs to go into a separate
- // thread or some other solution needs to be found
Q_EMIT processYieldSignal( bWait, bHandleAllCurrentEvents );
}
}