aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-16 23:31:19 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-04-16 23:31:19 -0400
commitfd261cecf75dc6e5f9e617578e7c648477eb74a5 (patch)
tree60230a6a29bdff7da8b76f6bfbeb2028c4a8fbaa /MediaBrowser.Controller
parent6bd18c6e72d1c4ba9c371d37411ebd918d8c6d9e (diff)
resolve photo scan hang
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs4
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs18
-rw-r--r--MediaBrowser.Controller/Providers/MetadataStatus.cs40
3 files changed, 11 insertions, 51 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 10fa4adad..73ede8179 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 975f3e394..821e6b5ca 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<BaseItem> 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<BaseItem> 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<BaseItem> LoadChildrenInternal()
- {
- return LoadChildren().ToList();
- }
-
/// <summary>
/// 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 12844c3c4..283b9edbc 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
/// <value>The last result error message.</value>
public string LastErrorMessage { get; set; }
- /// <summary>
- /// Gets or sets the providers refreshed.
- /// </summary>
- /// <value>The providers refreshed.</value>
- public List<Guid> MetadataProvidersRefreshed { get; set; }
- public List<Guid> 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<Guid>();
- ImageProvidersRefreshed = new List<Guid>();
}
public bool IsDirty { get; private set; }
@@ -109,33 +97,5 @@ namespace MediaBrowser.Controller.Providers
DateLastImagesRefresh = date;
}
-
- public void AddImageProvidersRefreshed(List<Guid> providerIds)
- {
- var count = ImageProvidersRefreshed.Count;
-
- providerIds.AddRange(ImageProvidersRefreshed);
-
- ImageProvidersRefreshed = providerIds.Distinct().ToList();
-
- if (ImageProvidersRefreshed.Count != count)
- {
- IsDirty = true;
- }
- }
-
- public void AddMetadataProvidersRefreshed(List<Guid> providerIds)
- {
- var count = MetadataProvidersRefreshed.Count;
-
- providerIds.AddRange(MetadataProvidersRefreshed);
-
- MetadataProvidersRefreshed = providerIds.Distinct().ToList();
-
- if (MetadataProvidersRefreshed.Count != count)
- {
- IsDirty = true;
- }
- }
}
}