diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2014-03-13 21:55:31 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-03-22 15:03:14 +0000 |
commit | 7317d3132ab816a4bfa394fd93f55e0d12e6d6e6 (patch) | |
tree | 8ee72728c98f6262d41a8f3c6783dc23d86ac2ec /vcl | |
parent | a8e64a0a017ba98fbff96862deca9b3d1970e0eb (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.cxx | 17 |
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 ); } } |