diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-12-19 20:22:17 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-19 20:22:17 -0500 |
commit | 54d40e008a0905a28569dbeb6f12a1a02189c217 (patch) | |
tree | dc2eced3167f153c50f8ef367b4c953f75ea7a3f /cli/npm/resolvers/global.rs | |
parent | 1e0017d8fc3a7ed0dd5775196a861d46caea5c33 (diff) |
perf(lsp): concurrent reads and exclusive writes (#17135)
Diffstat (limited to 'cli/npm/resolvers/global.rs')
-rw-r--r-- | cli/npm/resolvers/global.rs | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/cli/npm/resolvers/global.rs b/cli/npm/resolvers/global.rs index 093e15ded..b005cbaeb 100644 --- a/cli/npm/resolvers/global.rs +++ b/cli/npm/resolvers/global.rs @@ -138,11 +138,7 @@ impl InnerNpmPackageResolver for GlobalNpmPackageResolver { packages: Vec<NpmPackageReq>, ) -> BoxFuture<'static, Result<(), AnyError>> { let resolver = self.clone(); - async move { - resolver.resolution.add_package_reqs(packages).await?; - cache_packages_in_resolver(&resolver).await - } - .boxed() + async move { resolver.resolution.add_package_reqs(packages).await }.boxed() } fn set_package_reqs( @@ -150,11 +146,12 @@ impl InnerNpmPackageResolver for GlobalNpmPackageResolver { packages: HashSet<NpmPackageReq>, ) -> BoxFuture<'static, Result<(), AnyError>> { let resolver = self.clone(); - async move { - resolver.resolution.set_package_reqs(packages).await?; - cache_packages_in_resolver(&resolver).await - } - .boxed() + async move { resolver.resolution.set_package_reqs(packages).await }.boxed() + } + + fn cache_packages(&self) -> BoxFuture<'static, Result<(), AnyError>> { + let resolver = self.clone(); + async move { cache_packages_in_resolver(&resolver).await }.boxed() } fn ensure_read_permission(&self, path: &Path) -> Result<(), AnyError> { |