diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-17 19:23:24 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-17 20:03:04 +0900 |
| commit | 871a80e784a78eff693542fd33cb4a2910e5144d (patch) | |
| tree | 99e530fea6f52e303bf83db70480e701704f51a3 /crates/shirabe/src/plugin/plugin_events.rs | |
| parent | 6aa4808a0936e85384100f13e07aa7bea559bc3c (diff) | |
| download | php-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/plugin/plugin_events.rs')
0 files changed, 0 insertions, 0 deletions
