From 041dff5ee0600b1da041e7d2beecdeb30af19e5b Mon Sep 17 00:00:00 2001 From: SimoneN64 Date: Fri, 9 Jun 2023 09:44:38 +0200 Subject: [PATCH] Parallelize game db scanning so games don't take ages to boot --- src/backend/GameDB.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/GameDB.cpp b/src/backend/GameDB.cpp index af219fef..4ec6245d 100644 --- a/src/backend/GameDB.cpp +++ b/src/backend/GameDB.cpp @@ -1,10 +1,12 @@ #include #include +#include +#include namespace n64 { void GameDB::match(Mem& mem) { ROM& rom = mem.rom; - for (const auto & i : gamedb) { + std::for_each(std::execution::par, std::begin(gamedb), std::end(gamedb), [&](const auto& i) { bool matches_code = i.code == rom.code; bool matches_region = false; @@ -21,10 +23,10 @@ void GameDB::match(Mem& mem) { return; } else { Util::warn("Matched code for {}, but not region! Game supposedly exists in regions [{}] but this image has region {}", - i.name, i.regions, rom.header.countryCode[0]); + i.name, i.regions, rom.header.countryCode[0]); } } - } + }); Util::debug("Did not match any Game DB entries. Code: {} Region: {}", mem.rom.code, mem.rom.header.countryCode[0]);