mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-06-29 10:23:36 +02:00
Only update if actively refreshing (#11341)
This commit is contained in:
parent
7d28d08e08
commit
31e0756c0c
|
@ -460,15 +460,7 @@ namespace MediaBrowser.Controller.Entities
|
||||||
|
|
||||||
progress.Report(percent);
|
progress.Report(percent);
|
||||||
|
|
||||||
// TODO: this is sometimes being called after the refresh has completed.
|
ProviderManager.OnRefreshProgress(folder, percent);
|
||||||
try
|
|
||||||
{
|
|
||||||
ProviderManager.OnRefreshProgress(folder, percent);
|
|
||||||
}
|
|
||||||
catch (InvalidOperationException e)
|
|
||||||
{
|
|
||||||
Logger.LogError(e, "Error refreshing folder");
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (validChildrenNeedGeneration)
|
if (validChildrenNeedGeneration)
|
||||||
|
@ -500,15 +492,7 @@ namespace MediaBrowser.Controller.Entities
|
||||||
|
|
||||||
if (recursive)
|
if (recursive)
|
||||||
{
|
{
|
||||||
// TODO: this is sometimes being called after the refresh has completed.
|
ProviderManager.OnRefreshProgress(folder, percent);
|
||||||
try
|
|
||||||
{
|
|
||||||
ProviderManager.OnRefreshProgress(folder, percent);
|
|
||||||
}
|
|
||||||
catch (InvalidOperationException e)
|
|
||||||
{
|
|
||||||
Logger.LogError(e, "Error refreshing folder");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -968,16 +968,13 @@ namespace MediaBrowser.Providers.Manager
|
||||||
var id = item.Id;
|
var id = item.Id;
|
||||||
_logger.LogDebug("OnRefreshProgress {Id:N} {Progress}", id, progress);
|
_logger.LogDebug("OnRefreshProgress {Id:N} {Progress}", id, progress);
|
||||||
|
|
||||||
// TODO: Need to hunt down the conditions for this happening
|
if (!_activeRefreshes.TryGetValue(id, out var current)
|
||||||
_activeRefreshes.AddOrUpdate(
|
|| progress <= current
|
||||||
id,
|
|| !_activeRefreshes.TryUpdate(id, progress, current))
|
||||||
_ => throw new InvalidOperationException(
|
{
|
||||||
string.Format(
|
// Item isn't currently refreshing, or update was received out-of-order, so don't trigger event.
|
||||||
CultureInfo.InvariantCulture,
|
return;
|
||||||
"Cannot update refresh progress of item '{0}' ({1}) because a refresh for this item is not running",
|
}
|
||||||
item.GetType().Name,
|
|
||||||
item.Id.ToString("N", CultureInfo.InvariantCulture))),
|
|
||||||
(_, _) => progress);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue