fix concurrency issue in base app host

This commit is contained in:
LukePulverenti 2013-03-14 21:40:38 -04:00
parent 2af33416a7
commit 26536c22ad

View File

@ -381,6 +381,7 @@ namespace MediaBrowser.Common.Implementations
if (disposable != null) if (disposable != null)
{ {
Logger.Info("Registering " + disposable.GetType().Name); Logger.Info("Registering " + disposable.GetType().Name);
DisposableParts.Add(disposable); DisposableParts.Add(disposable);
} }
} }
@ -457,9 +458,12 @@ namespace MediaBrowser.Common.Implementations
var parts = AllConcreteTypes.AsParallel().Where(currentType.IsAssignableFrom).Select(CreateInstance).Cast<T>().ToArray(); var parts = AllConcreteTypes.AsParallel().Where(currentType.IsAssignableFrom).Select(CreateInstance).Cast<T>().ToArray();
if (manageLiftime) if (manageLiftime)
{
lock (DisposableParts)
{ {
DisposableParts.AddRange(parts.OfType<IDisposable>()); DisposableParts.AddRange(parts.OfType<IDisposable>());
} }
}
return parts; return parts;
} }