20 std::lock_guard<std::mutex> lock(m_mutex);
21 auto pair = m_cache.find(filename);
22 if (pair == m_cache.end()) {
23 auto lut = std::make_unique<PIDLookupTable>();
24 info(
"Loading PID lookup table \"{}\"", filename);
26 if (!std::filesystem::exists(filename)) {
27 error(
"PID lookup table \"{}\" not found", filename);
31 lut->load_file(filename, binning);
32 auto result_ptr = lut.get();
33 m_cache.insert({filename, std::move(lut)});
36 return pair->second.get();