in ingester/lib/src/symbolicator/mod.rs [626:663]
fn new(config: &Config) -> anyhow::Result<(Self, cache::Cache)> {
let cache_dir = config.cache.directory.clone();
let symbol_servers = config.symbol_servers.clone();
let downloads = Semaphore::new(config.symbol_servers.concurrency);
let client = reqwest::Client::builder()
.user_agent(super::APP_USER_AGENT)
.build()?;
let symsrv = symsrv::Symsrv::new(&cache_dir, &config.symbol_servers);
let cache = cache::Cache::new(
config.cache.size_limit_gb.limit_bytes(),
cache_dir.join("state"),
);
let keys = cache.live_keys();
Ok((
FileHelper {
cache_dir,
symbol_servers,
downloads,
client,
symsrv,
loaded_files: std::sync::Mutex::new(
keys.into_iter()
.map(|key| {
(
key,
Loaded {
mapped: None,
breakpad_symindex_mapped: None,
},
)
})
.collect(),
),
},
cache,
))
}