diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-29 19:49:23 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-10-29 19:49:23 -0400 |
| commit | fd04fddca0c9d5cda336efb5b4e02e117913ce37 (patch) | |
| tree | df1c98bb9a79cdc76e1c1e48110a06cf46b6be08 /MediaBrowser.Providers/Manager/ProviderManager.cs | |
| parent | 4807be3b0996e24b41bc5b805eff32f090b2f543 (diff) | |
update locks
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 |
