aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-19 16:43:09 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-04-19 16:43:09 -0400
commitde038ac029f5c5a8203df8e50083608ad30feb36 (patch)
tree57dfd06865035b581d50dde0d9c6af0b2cea585f
parenteb612bd303b1ff7adf44f38496448b6064c465fe (diff)
faster progress reporting during library scan
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs24
1 files changed, 15 insertions, 9 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 7253825a8c..2b924ea884 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -653,7 +653,7 @@ namespace MediaBrowser.Controller.Entities
{
var list = children.ToList();
- var percentages = new ConcurrentDictionary<Guid, double>(list.Select(i => new KeyValuePair<Guid, double>(i.Item1.Id, 0)));
+ var percentages = new Dictionary<Guid, double>();
var tasks = new List<Task>();
@@ -695,24 +695,30 @@ namespace MediaBrowser.Controller.Entities
innerProgress.RegisterAction(p =>
{
- percentages.TryUpdate(child.Id, p / 100, percentages[child.Id]);
+ lock (percentages)
+ {
+ percentages[child.Id] = p/100;
- var percent = percentages.Values.Sum();
- percent /= list.Count;
+ var percent = percentages.Values.Sum();
+ percent /= list.Count;
- progress.Report((90 * percent) + 10);
+ progress.Report((90 * percent) + 10);
+ }
});
await ((Folder)child).ValidateChildren(innerProgress, cancellationToken, recursive).ConfigureAwait(false);
}
else
{
- percentages.TryUpdate(child.Id, 1, percentages[child.Id]);
+ lock (percentages)
+ {
+ percentages[child.Id] = 1;
- var percent = percentages.Values.Sum();
- percent /= list.Count;
+ var percent = percentages.Values.Sum();
+ percent /= list.Count;
- progress.Report((90 * percent) + 10);
+ progress.Report((90 * percent) + 10);
+ }
}
}));
}