mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-21 07:00:30 +01:00
update locks
This commit is contained in:
@@ -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
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user