fn with_cache<R>(f: impl FnOnce(&[PciDevice]) -> R) -> RExpand description
Populate the cache if empty, then run f on the device slice.
All query functions route through here so that only a single scan ever happens, and the lock is held for the duration of the filter : not for the entire boot.