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 <[email protected]> AuthorDate: Wed Jul 18 12:23:10 2018 +0100 Commit: Miklos Vajna <[email protected]> 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 <[email protected]> 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; } _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
