diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-03-04 20:07:11 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-04 20:07:11 -0500 |
commit | 2f7222da8a26d8be915b9467fc21649a18f54b77 (patch) | |
tree | adb54f49608bd6cdd27e98ad56130532f49a04f5 /cli/resolver.rs | |
parent | 7afa3aceb04e6b2c8820b7326d6f648db6b571c6 (diff) |
refactor: remove `Semaphore::new(1)` and use `TaskQueue` (#18014)
Diffstat (limited to 'cli/resolver.rs')
-rw-r--r-- | cli/resolver.rs | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/cli/resolver.rs b/cli/resolver.rs index 46ae16a67..b113fc470 100644 --- a/cli/resolver.rs +++ b/cli/resolver.rs @@ -7,6 +7,7 @@ use deno_core::futures::future; use deno_core::futures::future::LocalBoxFuture; use deno_core::futures::FutureExt; use deno_core::ModuleSpecifier; +use deno_core::TaskQueue; use deno_graph::npm::NpmPackageNv; use deno_graph::npm::NpmPackageReq; use deno_graph::source::NpmResolver; @@ -34,7 +35,7 @@ pub struct CliGraphResolver { npm_registry_api: NpmRegistryApi, npm_resolution: NpmResolution, package_json_deps_installer: PackageJsonDepsInstaller, - sync_download_semaphore: Option<Arc<tokio::sync::Semaphore>>, + sync_download_queue: Option<Arc<TaskQueue>>, } impl Default for CliGraphResolver { @@ -52,7 +53,7 @@ impl Default for CliGraphResolver { npm_registry_api, npm_resolution, package_json_deps_installer: Default::default(), - sync_download_semaphore: Self::create_sync_download_semaphore(), + sync_download_queue: Self::create_sync_download_queue(), } } } @@ -77,13 +78,13 @@ impl CliGraphResolver { npm_registry_api, npm_resolution, package_json_deps_installer, - sync_download_semaphore: Self::create_sync_download_semaphore(), + sync_download_queue: Self::create_sync_download_queue(), } } - fn create_sync_download_semaphore() -> Option<Arc<tokio::sync::Semaphore>> { + fn create_sync_download_queue() -> Option<Arc<TaskQueue>> { if crate::npm::should_sync_download() { - Some(Arc::new(tokio::sync::Semaphore::new(1))) + Some(Default::default()) } else { None } @@ -194,10 +195,10 @@ impl NpmResolver for CliGraphResolver { let package_name = package_name.to_string(); let api = self.npm_registry_api.clone(); let deps_installer = self.package_json_deps_installer.clone(); - let maybe_sync_download_semaphore = self.sync_download_semaphore.clone(); + let maybe_sync_download_queue = self.sync_download_queue.clone(); async move { - let permit = if let Some(semaphore) = &maybe_sync_download_semaphore { - Some(semaphore.acquire().await.unwrap()) + let permit = if let Some(task_queue) = &maybe_sync_download_queue { + Some(task_queue.acquire().await) } else { None }; |