aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager/ProviderManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderManager.cs')
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs9
1 files changed, 3 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index ba4b624e3..46a6286a4 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -560,8 +560,6 @@ namespace MediaBrowser.Providers.Manager
new MetadataOptions();
}
- private readonly ConcurrentDictionary<string, SemaphoreSlim> _fileLocks = new ConcurrentDictionary<string, SemaphoreSlim>();
-
/// <summary>
/// Saves the metadata.
/// </summary>
@@ -585,6 +583,7 @@ namespace MediaBrowser.Providers.Manager
return SaveMetadata(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparer.OrdinalIgnoreCase)));
}
+ private readonly SemaphoreSlim _saveLock = new SemaphoreSlim(1,1);
/// <summary>
/// Saves the metadata.
/// </summary>
@@ -614,9 +613,7 @@ namespace MediaBrowser.Providers.Manager
continue;
}
- var semaphore = _fileLocks.GetOrAdd(path, key => new SemaphoreSlim(1, 1));
-
- await semaphore.WaitAsync().ConfigureAwait(false);
+ await _saveLock.WaitAsync().ConfigureAwait(false);
try
{
@@ -629,8 +626,8 @@ namespace MediaBrowser.Providers.Manager
}
finally
{
+ _saveLock.Release();
_libraryMonitor.ReportFileSystemChangeComplete(path, false);
- semaphore.Release();
}
}
else