From e44085eb742cb14dff22de054ef19fe725a4e2c2 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 17 Jul 2026 18:07:43 +0900 Subject: refactor(loop): drive wait() promises concurrently via FuturesUnordered Loop::wait already had the target signature and a TODO(phase-c-promise) marker noting it drove promises serially; swap the for-loop for FuturesUnordered so all promises are polled together instead of one at a time, keeping the "remember only the first error" semantics. This adds the first real use of the futures dependency (already present in Cargo.toml/Cargo.lock from earlier prep work, now finally consumed), so those lockfile/manifest changes land in this commit. Real overlap still doesn't happen yet: each promise (HttpDownloader::add/ add_copy etc.) resolves through a blocking bridge (curl_runtime()/ sync_executor::block_on) that fully occupies the thread until it settles, so this is groundwork for once a single top-level Runtime replaces those bridges. Updated the TODO(phase-c-promise) comment to reflect that. --- crates/shirabe/Cargo.toml | 1 + 1 file changed, 1 insertion(+) (limited to 'crates/shirabe/Cargo.toml') diff --git a/crates/shirabe/Cargo.toml b/crates/shirabe/Cargo.toml index 7ec9db82..00ce5211 100644 --- a/crates/shirabe/Cargo.toml +++ b/crates/shirabe/Cargo.toml @@ -15,6 +15,7 @@ anyhow.workspace = true async-trait.workspace = true base64.workspace = true chrono.workspace = true +futures.workspace = true indexmap.workspace = true jsonschema.workspace = true md5.workspace = true -- cgit v1.3.1