in ingester/lib/src/symbolicator/mod.rs [686:707]
fn get_mapped(&self, key: &cache::Key) -> Option<Arc<memmap2::Mmap>> {
let mut guard = self.loaded_files.lock().unwrap();
let loaded = guard.get_mut(key)?;
if loaded.mapped.is_none() {
let f = std::fs::File::open(
self.cache_dir
.join("breakpad")
.join(key.breakpad_relative_path()),
)
.ok()
.or_else(|| {
std::fs::File::open(
self.cache_dir
.join("windows")
.join(key.symsrv_relative_path()),
)
.ok()
})?;
loaded.mapped = Some(Arc::new(unsafe { memmap2::Mmap::map(&f) }.ok()?));
}
loaded.mapped.clone()
}