[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-5-2+backports' - sfx2/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Mon Mar 4 11:38:26 UTC 2019
sfx2/source/doc/sfxbasemodel.cxx | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
New commits:
commit e58c8aa75313a183fc31a5fa55c09d93fbefc8b0
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: Mon Mar 4 12:38:04 2019 +0100
tdf#123728 Always print on main thread to avoid deadlocks
Using lambda doesn't work on this branch, thus code differs from master commit.
Reviewed-on: https://gerrit.libreoffice.org/68421
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
(cherry picked from commit 110803068b75ffd895a9b1139aee2248d30f085b)
Change-Id: Ia8c2600aee42c3063e18032d1e485ad417ec4639
Reviewed-on: https://gerrit.libreoffice.org/68474
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 0de1a2ca4f92..b7f15838804b 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -84,6 +84,7 @@
#include <comphelper/numberedcollection.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <unotools/ucbhelper.hxx>
+#include <vcl/threadex.hxx>
#include <sfx2/sfxbasecontroller.hxx>
#include <sfx2/viewfac.hxx>
@@ -1426,13 +1427,23 @@ 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)
throw (lang::IllegalArgumentException, RuntimeException, std::exception)
{
SfxModelGuard aGuard( *this );
if ( 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));
+ }
}
More information about the Libreoffice-commits
mailing list