mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-22 05:30:46 +02:00
update locks
This commit is contained in:
parent
4807be3b09
commit
fd04fddca0
|
@ -560,8 +560,6 @@ namespace MediaBrowser.Providers.Manager
|
||||||
new MetadataOptions();
|
new MetadataOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly ConcurrentDictionary<string, SemaphoreSlim> _fileLocks = new ConcurrentDictionary<string, SemaphoreSlim>();
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Saves the metadata.
|
/// Saves the metadata.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -585,6 +583,7 @@ namespace MediaBrowser.Providers.Manager
|
||||||
return SaveMetadata(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparer.OrdinalIgnoreCase)));
|
return SaveMetadata(item, updateType, _savers.Where(i => savers.Contains(i.Name, StringComparer.OrdinalIgnoreCase)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly SemaphoreSlim _saveLock = new SemaphoreSlim(1,1);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Saves the metadata.
|
/// Saves the metadata.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -614,9 +613,7 @@ namespace MediaBrowser.Providers.Manager
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var semaphore = _fileLocks.GetOrAdd(path, key => new SemaphoreSlim(1, 1));
|
await _saveLock.WaitAsync().ConfigureAwait(false);
|
||||||
|
|
||||||
await semaphore.WaitAsync().ConfigureAwait(false);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -629,8 +626,8 @@ namespace MediaBrowser.Providers.Manager
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
_saveLock.Release();
|
||||||
_libraryMonitor.ReportFileSystemChangeComplete(path, false);
|
_libraryMonitor.ReportFileSystemChangeComplete(path, false);
|
||||||
semaphore.Release();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -657,8 +657,7 @@ namespace MediaBrowser.Providers.Movies
|
||||||
return _httpClient.GetResponse(new HttpRequestOptions
|
return _httpClient.GetResponse(new HttpRequestOptions
|
||||||
{
|
{
|
||||||
CancellationToken = cancellationToken,
|
CancellationToken = cancellationToken,
|
||||||
Url = url,
|
Url = url
|
||||||
ResourcePool = MovieDbResourcePool
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -206,8 +206,7 @@ namespace MediaBrowser.Providers.Music
|
||||||
return _httpClient.GetResponse(new HttpRequestOptions
|
return _httpClient.GetResponse(new HttpRequestOptions
|
||||||
{
|
{
|
||||||
CancellationToken = cancellationToken,
|
CancellationToken = cancellationToken,
|
||||||
Url = url,
|
Url = url
|
||||||
ResourcePool = FanArtResourcePool
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -224,8 +224,7 @@ namespace MediaBrowser.Providers.TV
|
||||||
return _httpClient.GetResponse(new HttpRequestOptions
|
return _httpClient.GetResponse(new HttpRequestOptions
|
||||||
{
|
{
|
||||||
CancellationToken = cancellationToken,
|
CancellationToken = cancellationToken,
|
||||||
Url = url,
|
Url = url
|
||||||
ResourcePool = FanartArtistProvider.Current.FanArtResourcePool
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue