perf: flatten DoH tasks for concurrent gathering (#15)

Modified `collect_dns_advanced` to gather DoH probes simultaneously by building a single list of tasks, replacing the sequential gathering loop. Added a similar concurrent optimization to `system_probes` fetching.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit is contained in:
Horizontal42 2026-08-19 16:53:21 +03:00 • committed by GitHub
parent 3ab957fd0e
commit 67f677a536
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -141,14 +141,13 @@ async def collect_dns_advanced(
bogus_probe_name: str,
timeout: float,
) -> DnsAdvanced:
system_probes = [await resolve_system(name, timeout) for name in control_names]
doh_probes: list[ResolverProbe] = []
for name in control_names:
doh_probes.extend(
await asyncio.gather(
*(resolve_doh(client, ep.name, ep.url, name, timeout) for ep in doh_endpoints)
)
)
system_probes = list(await asyncio.gather(*(resolve_system(name, timeout) for name in control_names)))
doh_tasks = [
resolve_doh(client, ep.name, ep.url, name, timeout)
for name in control_names
for ep in doh_endpoints
]
doh_probes = list(await asyncio.gather(*doh_tasks))
divergences: list[str] = []
for system_probe in system_probes: