Revert "Fixed broken plugin loading."

This reverts commit 5aa4646ce6.
This commit is contained in:
Oliver Hamlet
2014-12-20 19:56:22 +00:00
parent 6d1013c90a
commit 099548322a
+8 -13
View File
@@ -580,7 +580,7 @@ namespace loot {
boost::thread_group group;
size_t meanFileSize = 0;
unordered_map<std::string, size_t> tempMap;
std::vector<Plugin*> groupPlugins;
std::set<std::string> skipPlugins;
//First calculate the mean plugin size. Store it temporarily in a map to reduce filesystem lookups and file size recalculation.
for (fs::directory_iterator it(this->DataPath()); it != fs::directory_iterator(); ++it) {
if (fs::is_regular_file(it->status()) && IsPlugin(it->path().string())) {
@@ -601,24 +601,19 @@ namespace loot {
auto plugin = plugins.emplace(pluginPair.first, Plugin(pluginPair.first));
if (pluginPair.second > meanFileSize) {
BOOST_LOG_TRIVIAL(trace) << "Creating individual loading thread for: " << pluginPair.first;
group.create_thread([this, plugin, headersOnly]() {
BOOST_LOG_TRIVIAL(trace) << "Loading " << plugin.first->second.Name() << " individually.";
skipPlugins.insert(pluginPair.first);
group.create_thread([this, &plugin, headersOnly]() {
plugin.first->second = Plugin(*this, plugin.first->first, headersOnly);
});
}
else {
groupPlugins.push_back(&plugin.first->second);
}
}
group.create_thread([this, &groupPlugins, headersOnly]() {
for (auto plugin : groupPlugins) {
const std::string name = plugin->Name();
BOOST_LOG_TRIVIAL(trace) << "Loading " << plugin->Name() << " as part of a group.";
*plugin = Plugin(*this, name, headersOnly);
group.create_thread([this, &skipPlugins, headersOnly]() {
for (auto &pluginPair : this->plugins) {
if (skipPlugins.find(pluginPair.first) == skipPlugins.end()) {
pluginPair.second = Plugin(*this, pluginPair.first, headersOnly);
}
}
});
group.join_all();
}