aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/stream_context_factory.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-17 19:23:24 +0900
committernsfisis <nsfisis@gmail.com>2026-07-17 20:03:04 +0900
commit871a80e784a78eff693542fd33cb4a2910e5144d (patch)
tree99e530fea6f52e303bf83db70480e701704f51a3 /crates/shirabe/src/util/stream_context_factory.rs
parent6aa4808a0936e85384100f13e07aa7bea559bc3c (diff)
downloadphp-shirabe-871a80e784a78eff693542fd33cb4a2910e5144d.tar.gz
php-shirabe-871a80e784a78eff693542fd33cb4a2910e5144d.tar.zst
php-shirabe-871a80e784a78eff693542fd33cb4a2910e5144d.zip
refactor(composer-repository): fan out async metadata downloads concurrently
get_security_advisories/load_async_packages serialized every start_cached_async_download call through sync_executor::block_on per name, matching PHP's structure but not its promise-based concurrency. Wrap the mutable state those downloads touch (cache, fresh_metadata_urls, packages_not_found_cache, degraded_mode) in RefCell/Cell so start_cached_async_download and its async_fetch_file helpers can drop to &self, then fan out all downloads for a batch via FuturesOrdered before processing responses sequentially in original order, mirroring PHP's build-all-promises-then-wait shape. Real I/O overlap still awaits item 7 (HttpDownloader::add currently resolves through the curl_runtime()/sync_executor::block_on bridge either way), so this is architectural groundwork, not a perf win yet.
Diffstat (limited to 'crates/shirabe/src/util/stream_context_factory.rs')
0 files changed, 0 insertions, 0 deletions