summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2018-09-12 10:51:25 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-09-21 15:18:42 +0200
commit4a242e736be63f4ca40963f6690d9f0619bad29a (patch)
tree1b6ee8a6beadb60113c4ccb52da950ecdf278d63
parentb8525055c6734baa36c1da0aaf33654a865e2021 (diff)
tdf#119814 Fix UI freeze with gtk3_kde5 filepicker
Previously, the loop inside 'runCommands()' was triggered every time 'm_stdinNotifier' got activated. This could lead to both the soffice and the separate lo_kde5filepicker process blocking indefinitely, when during the execution of 'KDE5FilePicker::execute()', the processing of another event started which would then be blocked in the 'readCommand()' call; finally causing both processes to wait for input from stdin that would never appear (s. backtrace attached to tdf#119814). Since the loop inside 'runCommands()' runs until all commands have been processed, it's sufficient to start it once when 'm_stdinNotifier' is activated for the first time. Change-Id: Ie9180dbaf7e3f7ec033ad6d53fabe1b1ee363465 Reviewed-on: https://gerrit.libreoffice.org/60380 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit e95930d96459cc653342e78617db9498255569d0) Reviewed-on: https://gerrit.libreoffice.org/60407 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
index 26c19f6b4c9b..aeb864eae2ef 100644
--- a/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
+++ b/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
@@ -65,6 +65,9 @@ FilePickerIpc::~FilePickerIpc() = default;
void FilePickerIpc::readCommands()
{
+ // don't trigger again, loop runs until all is done
+ disconnect(m_stdinNotifier, &QSocketNotifier::activated, this, &FilePickerIpc::readCommands);
+
while (readCommand())
{
// read next command