Browse Source

Make package repository cache thread safe.

pull/15/head
Matt Ward 15 years ago
parent
commit
f29bf6f3a4
  1. 7
      src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs

7
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) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using NuGet; using NuGet;
@ -13,8 +14,8 @@ namespace ICSharpCode.PackageManagement
RegisteredPackageSources registeredPackageSources; RegisteredPackageSources registeredPackageSources;
IList<RecentPackageInfo> recentPackages; IList<RecentPackageInfo> recentPackages;
IRecentPackageRepository recentPackageRepository; IRecentPackageRepository recentPackageRepository;
Dictionary<PackageSource, IPackageRepository> repositories = ConcurrentDictionary<PackageSource, IPackageRepository> repositories =
new Dictionary<PackageSource, IPackageRepository>(); new ConcurrentDictionary<PackageSource, IPackageRepository>();
public PackageRepositoryCache( public PackageRepositoryCache(
ISharpDevelopPackageRepositoryFactory factory, ISharpDevelopPackageRepositoryFactory factory,
@ -57,7 +58,7 @@ namespace ICSharpCode.PackageManagement
IPackageRepository CreateNewCachedRepository(PackageSource packageSource) IPackageRepository CreateNewCachedRepository(PackageSource packageSource)
{ {
IPackageRepository repository = factory.CreateRepository(packageSource); IPackageRepository repository = factory.CreateRepository(packageSource);
repositories.Add(packageSource, repository); repositories.TryAdd(packageSource, repository);
return repository; return repository;
} }

Loading…
Cancel
Save