diff options
| author | Gary Wilber <Spacetech326@gmail.com> | 2020-12-02 18:51:53 -0800 |
|---|---|---|
| committer | Gary Wilber <Spacetech326@gmail.com> | 2020-12-02 18:51:53 -0800 |
| commit | f4edca7c2790207b5be9abb3b49029c9fbe04828 (patch) | |
| tree | 3da18152bbe5e1b168f58fb97a0bcdeea4a325b2 /MediaBrowser.Providers/Manager/ProviderManager.cs | |
| parent | e8cb9cea7d04da5896cdb2ac1f71b764e8143faa (diff) | |
Move MetadataRefreshThrottler to BaseItemManager
Diffstat (limited to 'MediaBrowser.Providers/Manager/ProviderManager.cs')
| -rw-r--r-- | MediaBrowser.Providers/Manager/ProviderManager.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs index e7e44876d..fbf4bc68b 100644 --- a/MediaBrowser.Providers/Manager/ProviderManager.cs +++ b/MediaBrowser.Providers/Manager/ProviderManager.cs @@ -1167,6 +1167,26 @@ namespace MediaBrowser.Providers.Manager return RefreshItem(item, options, cancellationToken); } + /// <summary> + /// Runs multiple metadata refreshes concurrently. + /// </summary> + /// <param name="action">The action to run.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <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); + + try + { + await action().ConfigureAwait(false); + } + finally + { + _baseItemManager.MetadataRefreshThrottler.Value.Release(); + } + } + /// <inheritdoc/> public void Dispose() { |
