[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - comphelper/source desktop/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Thu Jul 26 08:27:20 UTC 2018
comphelper/source/misc/threadpool.cxx | 9 ++++-----
desktop/source/lib/init.cxx | 4 ++++
2 files changed, 8 insertions(+), 5 deletions(-)
New commits:
commit 94a55b5daad057e22aa94f546a3ea35f85c64a3a
Author: Michael Meeks <michael.meeks at collabora.com>
AuthorDate: Wed Jul 18 12:23:10 2018 +0100
Commit: Miklos Vajna <vmiklos at collabora.co.uk>
CommitDate: Thu Jul 26 10:26:58 2018 +0200
Allow the comphelper threadpool to be reset after construction.
Otherwise some pre-init components can start it, and threads get
stranded in the forkit process causing grief.
Change-Id: Ib1846f8b329b4c6b84645999dafba1252c5129c7
Reviewed-on: https://gerrit.libreoffice.org/57635
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/comphelper/source/misc/threadpool.cxx b/comphelper/source/misc/threadpool.cxx
index 23e363213206..457b7282fced 100644
--- a/comphelper/source/misc/threadpool.cxx
+++ b/comphelper/source/misc/threadpool.cxx
@@ -126,13 +126,12 @@ sal_Int32 ThreadPool::getPreferredConcurrency()
return ThreadCount;
}
-// FIXME: there should be no need for this as/when our baseline
-// is >VS2015 and drop WinXP; the sorry details are here:
-// https://connect.microsoft.com/VisualStudio/feedback/details/1282596
+// Used to order shutdown, and to ensure there are no lingering
+// threads after LibreOfficeKit pre-init.
void ThreadPool::shutdown()
{
- if (mbTerminate)
- return;
+// if (mbTerminate)
+// return;
std::unique_lock< std::mutex > aGuard( maMutex );
shutdownLocked(aGuard);
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index e07fe4babb2a..deac1a746fc6 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -36,6 +36,7 @@
#include <comphelper/string.hxx>
#include <comphelper/propertysequence.hxx>
#include <comphelper/scopeguard.hxx>
+#include <comphelper/threadpool.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XNameAccess.hpp>
@@ -3892,7 +3893,10 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
}
if (eStage == PRE_INIT)
+ {
+ comphelper::ThreadPool::getSharedOptimalPool().shutdown();
rtl_alloc_preInit(rtlAllocPostInit);
+ }
return bInitialized;
}
More information about the Libreoffice-commits
mailing list