diff --git a/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs b/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs index ca50d4c2b..276622666 100644 --- a/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs +++ b/MediaBrowser.Providers/TV/TheTVDB/TvDbClientManager.cs @@ -90,16 +90,23 @@ namespace MediaBrowser.Providers.TV { return cachedValue; } - using (_cacheWriteLock) + + await _cacheWriteLock.WaitAsync().ConfigureAwait(false); + try { if (_cache.TryGetValue(key, out cachedValue)) { return cachedValue; } + var result = await resultFactory.Invoke(); - _cache.Set(key, result, DateTimeOffset.UtcNow.AddHours(1)); + _cache.Set(key, result, TimeSpan.FromHours(1)); return result; } + finally + { + _cacheWriteLock.Release(); + } } } }