[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - sfx2/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Feb 28 12:01:29 UTC 2019


 sfx2/source/doc/sfxbasemodel.cxx |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

New commits:
commit 559fa3d0d49ae53991626923d59f9c7f22858c58
Author:     Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Wed Feb 27 08:40:04 2019 +0100
Commit:     Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Thu Feb 28 13:01:03 2019 +0100

    tdf#123728 Always print on main thread to avoid deadlocks
    
    Change-Id: Ia8c2600aee42c3063e18032d1e485ad417ec4639
    Reviewed-on: https://gerrit.libreoffice.org/68421
    Tested-by: Jenkins
    Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
    (cherry picked from commit 110803068b75ffd895a9b1139aee2248d30f085b)
    Reviewed-on: https://gerrit.libreoffice.org/68461
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>

diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 72a4b7b00aed..27ba812a2449 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -91,6 +91,7 @@
 #include <framework/titlehelper.hxx>
 #include <comphelper/numberedcollection.hxx>
 #include <unotools/ucbhelper.hxx>
+#include <vcl/threadex.hxx>
 
 #include <sfx2/sfxbasecontroller.hxx>
 #include <sfx2/viewfac.hxx>
@@ -1411,14 +1412,22 @@ void SAL_CALL SfxBaseModel::setPrinter(const Sequence< beans::PropertyValue >& r
     m_pData->m_xPrintable->setPrinter( rPrinter );
 }
 
+static bool ImplPrintStatic(const Reference<view::XPrintable>& m_xPrintable,
+                            const Sequence<beans::PropertyValue>& rOptions)
+{
+    m_xPrintable->print(rOptions);
+    return true;
+}
+
 void SAL_CALL SfxBaseModel::print(const Sequence< beans::PropertyValue >& rOptions)
 {
     SfxModelGuard aGuard( *this );
 
     impl_getPrintHelper();
-    m_pData->m_xPrintable->print( rOptions );
-}
 
+    // tdf#123728 Always print on main thread to avoid deadlocks
+    vcl::solarthread::syncExecute(std::bind(&ImplPrintStatic, m_pData->m_xPrintable, rOptions));
+}
 
 //  XStorable
 


More information about the Libreoffice-commits mailing list