fn new()

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,
        ))
    }