aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs7
-rw-r--r--MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs2
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs7
3 files changed, 8 insertions, 8 deletions
diff --git a/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs b/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs
index 7aec3b322..c018627b4 100644
--- a/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs
+++ b/MediaBrowser.Controller/BaseItemManager/BaseItemManager.cs
@@ -39,7 +39,7 @@ namespace MediaBrowser.Controller.BaseItemManager
}
/// <inheritdoc />
- public Lazy<SemaphoreSlim> MetadataRefreshThrottler { get; private set; }
+ public SemaphoreSlim MetadataRefreshThrottler { get; private set; }
/// <inheritdoc />
public bool IsMetadataFetcherEnabled(BaseItem baseItem, LibraryOptions libraryOptions, string name)
@@ -108,10 +108,7 @@ namespace MediaBrowser.Controller.BaseItemManager
/// </summary>
private void SetupMetadataThrottler()
{
- if (MetadataRefreshThrottler == null || MetadataRefreshThrottler.IsValueCreated)
- {
- MetadataRefreshThrottler = new Lazy<SemaphoreSlim>(() => new SemaphoreSlim(_metadataRefreshConcurrency));
- }
+ MetadataRefreshThrottler = new SemaphoreSlim(_metadataRefreshConcurrency);
}
/// <summary>
diff --git a/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs b/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs
index d5f36dc2e..e1f5d05a6 100644
--- a/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs
+++ b/MediaBrowser.Controller/BaseItemManager/IBaseItemManager.cs
@@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.BaseItemManager
/// <summary>
/// Gets the semaphore used to limit the amount of concurrent metadata refreshes.
/// </summary>
- Lazy<SemaphoreSlim> MetadataRefreshThrottler { get; }
+ SemaphoreSlim MetadataRefreshThrottler { get; }
/// <summary>
/// Is metadata fetcher enabled.
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index fbf4bc68b..a20c47cf2 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -1175,7 +1175,10 @@ namespace MediaBrowser.Providers.Manager
/// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns>
public async Task RunMetadataRefresh(Func<Task> action, CancellationToken cancellationToken)
{
- await _baseItemManager.MetadataRefreshThrottler.Value.WaitAsync(cancellationToken).ConfigureAwait(false);
+ // create a variable for this since it is possible MetadataRefreshThrottler could change due to a config update during a scan
+ var metadataRefreshThrottler = _baseItemManager.MetadataRefreshThrottler;
+
+ await metadataRefreshThrottler.WaitAsync(cancellationToken).ConfigureAwait(false);
try
{
@@ -1183,7 +1186,7 @@ namespace MediaBrowser.Providers.Manager
}
finally
{
- _baseItemManager.MetadataRefreshThrottler.Value.Release();
+ metadataRefreshThrottler.Release();
}
}