From 73248d9e4036ad6b9494f678efbc97e919ebfbcf Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sun, 24 May 2020 13:36:16 +0200 Subject: Use the refresh_thread_count setting for ModInfo::updateFromDisc. --- src/modinfo.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/modinfo.cpp') diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 5a90d74b..81b45a49 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -46,7 +46,7 @@ using namespace MOBase; using namespace MOShared; -env::ThreadPool ModInfo::s_Threads(10); +env::ThreadPool ModInfo::s_Threads; std::vector ModInfo::s_Collection; std::map ModInfo::s_ModsByName; std::map, std::vector> ModInfo::s_ModsByModID; @@ -251,6 +251,7 @@ void ModInfo::updateFromDisc(const QString &modDirectory, DirectoryEntry **directoryStructure, PluginContainer *pluginContainer, bool displayForeign, + std::size_t refreshThreadCount, MOBase::IPluginGame const *game) { TimeThis tt("ModInfo::updateFromDisc()"); @@ -287,14 +288,17 @@ void ModInfo::updateFromDisc(const QString &modDirectory, createFromOverwrite(pluginContainer, game, directoryStructure); std::sort(s_Collection.begin(), s_Collection.end(), ModInfo::ByName); - - updateIndices(); - + + // This force loading a part of the FileTree: + s_Threads.setMax(refreshThreadCount); for (auto& p : s_Collection) { - auto &t = s_Threads.request(); + auto& t = s_Threads.request(); t.ptr = p; t.wakeup(); } + + updateIndices(); + } -- cgit v1.3.1