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 #include #include +#include #include #include @@ -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; }