diff options
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderManager.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/ProviderManager.cs | 9 |
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 |
