Fix possible race condition

pull/2447/head
Bond_009 4 years ago
parent d1e1aef5f7
commit e699e5d405

@ -970,20 +970,18 @@ namespace MediaBrowser.Providers.Manager
var id = item.Id;
_logger.LogInformation("OnRefreshProgress {0} {1}", id.ToString("N", CultureInfo.InvariantCulture), progress);
if (_activeRefreshes.TryAdd(id, progress))
{
RefreshProgress?.Invoke(this, new GenericEventArgs<Tuple<BaseItem, double>>(new Tuple<BaseItem, double>(item, progress)));
}
else
{
// TODO: Need to hunt down the conditions for this happening
throw new Exception(
// TODO: Need to hunt down the conditions for this happening
_activeRefreshes.AddOrUpdate(
id,
(_) => throw new Exception(
string.Format(
CultureInfo.InvariantCulture,
"Refresh for item {0} {1} is not in progress",
item.GetType().Name,
item.Id.ToString("N", CultureInfo.InvariantCulture)));
}
item.Id.ToString("N", CultureInfo.InvariantCulture))),
(_, _) => progress);
RefreshProgress?.Invoke(this, new GenericEventArgs<Tuple<BaseItem, double>>(new Tuple<BaseItem, double>(item, progress)));
}
private readonly SimplePriorityQueue<Tuple<Guid, MetadataRefreshOptions>> _refreshQueue =

@ -22,6 +22,7 @@
<TargetFramework>netstandard2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<!-- Code Analyzers-->

Loading…
Cancel
Save