comphelper/source/misc/threadpool.cxx | 9 ++++----- desktop/source/lib/init.cxx | 4 ++++ 2 files changed, 8 insertions(+), 5 deletions(-)
New commits: commit 5bfdbc664072dbf2731365b237b60eba2b3e03fb Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Wed Jul 18 12:23:10 2018 +0100 Commit: Michael Meeks <michael.me...@collabora.com> CommitDate: Wed Jul 18 22:28:51 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/57631 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.me...@collabora.com> diff --git a/comphelper/source/misc/threadpool.cxx b/comphelper/source/misc/threadpool.cxx index d23b6fa9431a..650541406a6a 100644 --- a/comphelper/source/misc/threadpool.cxx +++ b/comphelper/source/misc/threadpool.cxx @@ -128,13 +128,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 fc4705233195..0b3582f8c07c 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> @@ -3968,7 +3969,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 libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits