From f29bf6f3a42fd6a5597356594a414b1c86134892 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 15 May 2011 18:43:32 +0100 Subject: [PATCH] Make package repository cache thread safe. --- .../Project/Src/PackageRepositoryCache.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs index 3d33e894d9..2e879bdcbb 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs @@ -2,6 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.Collections.Concurrent; using System.Collections.Generic; using NuGet; @@ -13,8 +14,8 @@ namespace ICSharpCode.PackageManagement RegisteredPackageSources registeredPackageSources; IList recentPackages; IRecentPackageRepository recentPackageRepository; - Dictionary repositories = - new Dictionary(); + ConcurrentDictionary repositories = + new ConcurrentDictionary(); public PackageRepositoryCache( ISharpDevelopPackageRepositoryFactory factory, @@ -57,7 +58,7 @@ namespace ICSharpCode.PackageManagement IPackageRepository CreateNewCachedRepository(PackageSource packageSource) { IPackageRepository repository = factory.CreateRepository(packageSource); - repositories.Add(packageSource, repository); + repositories.TryAdd(packageSource, repository); return repository; }