From 334f1eaf0b7bea246fdacfd06f9d8a77c4017bd4 Mon Sep 17 00:00:00 2001 From: Ryan Shaffer Date: Thu, 17 Sep 2020 17:15:48 -0700 Subject: [PATCH 1/3] Synchronize package loading --- src/Core/References/NugetPackages.cs | 7 +++++-- src/Core/References/References.cs | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Core/References/NugetPackages.cs b/src/Core/References/NugetPackages.cs index 3a26cc2be1..94b1550505 100644 --- a/src/Core/References/NugetPackages.cs +++ b/src/Core/References/NugetPackages.cs @@ -208,8 +208,11 @@ public async Task Add(PackageIdentity pkgId, Action? statusCallback = nu await DownloadPackages(sourceCacheContext, packages, statusCallback); - this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); - this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray(); + lock (this) + { + this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); + this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray(); + } } } diff --git a/src/Core/References/References.cs b/src/Core/References/References.cs index 8b1590ebb7..bd430fba83 100644 --- a/src/Core/References/References.cs +++ b/src/Core/References/References.cs @@ -183,8 +183,11 @@ IOptions options /// public void AddAssemblies(params AssemblyInfo[] assemblies) { - Assemblies = Assemblies.Union(assemblies).ToImmutableArray(); - Reset(); + lock (this) + { + Assemblies = Assemblies.Union(assemblies).ToImmutableArray(); + Reset(); + } } /// From 20aa90ef7b8c572f03f9ad5ff3dc4abd84cb124a Mon Sep 17 00:00:00 2001 From: Ryan Shaffer Date: Thu, 17 Sep 2020 22:17:04 -0400 Subject: [PATCH 2/3] Update NugetPackages.cs --- src/Core/References/NugetPackages.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Core/References/NugetPackages.cs b/src/Core/References/NugetPackages.cs index 94b1550505..f198df1830 100644 --- a/src/Core/References/NugetPackages.cs +++ b/src/Core/References/NugetPackages.cs @@ -208,7 +208,7 @@ public async Task Add(PackageIdentity pkgId, Action? statusCallback = nu await DownloadPackages(sourceCacheContext, packages, statusCallback); - lock (this) + lock (this) { this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray(); From 6d2259c2e826e10fed4a2f6c26e5e1f619c4f40f Mon Sep 17 00:00:00 2001 From: Ryan Shaffer Date: Fri, 18 Sep 2020 08:59:10 -0400 Subject: [PATCH 3/3] Update NugetPackages.cs --- src/Core/References/NugetPackages.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Core/References/NugetPackages.cs b/src/Core/References/NugetPackages.cs index f198df1830..94b1550505 100644 --- a/src/Core/References/NugetPackages.cs +++ b/src/Core/References/NugetPackages.cs @@ -208,7 +208,7 @@ public async Task Add(PackageIdentity pkgId, Action? statusCallback = nu await DownloadPackages(sourceCacheContext, packages, statusCallback); - lock (this) + lock (this) { this.Items = Items.Union(new PackageIdentity[] { pkgId }).ToArray(); this.Assemblies = Assemblies.Union(packages.Reverse().SelectMany(GetAssemblies)).ToArray();