From fd261cecf75dc6e5f9e617578e7c648477eb74a5 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 16 Apr 2015 23:31:19 -0400 Subject: resolve photo scan hang --- MediaBrowser.Controller/Entities/BaseItem.cs | 4 +-- MediaBrowser.Controller/Entities/Folder.cs | 18 +++++----- .../Providers/MetadataStatus.cs | 40 ---------------------- 3 files changed, 11 insertions(+), 51 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 10fa4adad4..73ede8179b 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1,5 +1,4 @@ -using System.Globalization; -using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Collections; @@ -18,6 +17,7 @@ using MediaBrowser.Model.Logging; using MediaBrowser.Model.Users; using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Runtime.Serialization; diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 975f3e3947..821e6b5caf 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -164,18 +164,22 @@ namespace MediaBrowser.Controller.Entities protected void AddChildrenInternal(IEnumerable children) { + var actualChildren = ActualChildren; + lock (_childrenSyncLock) { - var newChildren = ActualChildren.ToList(); + var newChildren = actualChildren.ToList(); newChildren.AddRange(children); _children = newChildren; } } protected void AddChildInternal(BaseItem child) { + var actualChildren = ActualChildren; + lock (_childrenSyncLock) { - var newChildren = ActualChildren.ToList(); + var newChildren = actualChildren.ToList(); newChildren.Add(child); _children = newChildren; } @@ -184,10 +188,11 @@ namespace MediaBrowser.Controller.Entities protected void RemoveChildrenInternal(IEnumerable children) { var ids = children.Select(i => i.Id).ToList(); + var actualChildren = ActualChildren; lock (_childrenSyncLock) { - _children = ActualChildren.Where(i => !ids.Contains(i.Id)).ToList(); + _children = actualChildren.Where(i => !ids.Contains(i.Id)).ToList(); } } @@ -302,7 +307,7 @@ namespace MediaBrowser.Controller.Entities { if (_children == null) { - _children = LoadChildrenInternal(); + _children = LoadChildren().ToList(); } } } @@ -356,11 +361,6 @@ namespace MediaBrowser.Controller.Entities return base.IsVisible(user); } - private List LoadChildrenInternal() - { - return LoadChildren().ToList(); - } - /// /// Loads our children. Validation will occur externally. /// We want this sychronous. diff --git a/MediaBrowser.Controller/Providers/MetadataStatus.cs b/MediaBrowser.Controller/Providers/MetadataStatus.cs index 12844c3c4d..283b9edbc2 100644 --- a/MediaBrowser.Controller/Providers/MetadataStatus.cs +++ b/MediaBrowser.Controller/Providers/MetadataStatus.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; namespace MediaBrowser.Controller.Providers { @@ -54,13 +52,6 @@ namespace MediaBrowser.Controller.Providers /// The last result error message. public string LastErrorMessage { get; set; } - /// - /// Gets or sets the providers refreshed. - /// - /// The providers refreshed. - public List MetadataProvidersRefreshed { get; set; } - public List ImageProvidersRefreshed { get; set; } - public DateTime? ItemDateModified { get; set; } public void AddStatus(ProviderRefreshStatus status, string errorMessage) @@ -83,9 +74,6 @@ namespace MediaBrowser.Controller.Providers public MetadataStatus() { LastStatus = ProviderRefreshStatus.Success; - - MetadataProvidersRefreshed = new List(); - ImageProvidersRefreshed = new List(); } public bool IsDirty { get; private set; } @@ -109,33 +97,5 @@ namespace MediaBrowser.Controller.Providers DateLastImagesRefresh = date; } - - public void AddImageProvidersRefreshed(List providerIds) - { - var count = ImageProvidersRefreshed.Count; - - providerIds.AddRange(ImageProvidersRefreshed); - - ImageProvidersRefreshed = providerIds.Distinct().ToList(); - - if (ImageProvidersRefreshed.Count != count) - { - IsDirty = true; - } - } - - public void AddMetadataProvidersRefreshed(List providerIds) - { - var count = MetadataProvidersRefreshed.Count; - - providerIds.AddRange(MetadataProvidersRefreshed); - - MetadataProvidersRefreshed = providerIds.Distinct().ToList(); - - if (MetadataProvidersRefreshed.Count != count) - { - IsDirty = true; - } - } } } -- cgit v1.2.3