aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Emby.Server.Implementations/Channels/ChannelManager.cs35
-rw-r--r--Emby.Server.Implementations/LiveTv/LiveTvManager.cs4
-rw-r--r--MediaBrowser.Controller/LiveTv/ILiveTvManager.cs2
3 files changed, 27 insertions, 14 deletions
diff --git a/Emby.Server.Implementations/Channels/ChannelManager.cs b/Emby.Server.Implementations/Channels/ChannelManager.cs
index 8279acb05..c505e8fe1 100644
--- a/Emby.Server.Implementations/Channels/ChannelManager.cs
+++ b/Emby.Server.Implementations/Channels/ChannelManager.cs
@@ -812,11 +812,16 @@ namespace Emby.Server.Implementations.Channels
{
if (_fileSystem.GetLastWriteTimeUtc(cachePath).Add(cacheLength) > DateTime.UtcNow)
{
- await using FileStream jsonStream = AsyncFile.OpenRead(cachePath);
- var cachedResult = await JsonSerializer.DeserializeAsync<ChannelItemResult>(jsonStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
- if (cachedResult is not null)
+ var jsonStream = AsyncFile.OpenRead(cachePath);
+ await using (jsonStream.ConfigureAwait(false))
{
- return null;
+ var cachedResult = await JsonSerializer
+ .DeserializeAsync<ChannelItemResult>(jsonStream, _jsonOptions, cancellationToken)
+ .ConfigureAwait(false);
+ if (cachedResult is not null)
+ {
+ return null;
+ }
}
}
}
@@ -835,11 +840,16 @@ namespace Emby.Server.Implementations.Channels
{
if (_fileSystem.GetLastWriteTimeUtc(cachePath).Add(cacheLength) > DateTime.UtcNow)
{
- await using FileStream jsonStream = AsyncFile.OpenRead(cachePath);
- var cachedResult = await JsonSerializer.DeserializeAsync<ChannelItemResult>(jsonStream, _jsonOptions, cancellationToken).ConfigureAwait(false);
- if (cachedResult is not null)
+ var jsonStream = AsyncFile.OpenRead(cachePath);
+ await using (jsonStream.ConfigureAwait(false))
{
- return null;
+ var cachedResult = await JsonSerializer
+ .DeserializeAsync<ChannelItemResult>(jsonStream, _jsonOptions, cancellationToken)
+ .ConfigureAwait(false);
+ if (cachedResult is not null)
+ {
+ return null;
+ }
}
}
}
@@ -867,7 +877,7 @@ namespace Emby.Server.Implementations.Channels
throw new InvalidOperationException("Channel returned a null result from GetChannelItems");
}
- await CacheResponse(result, cachePath);
+ await CacheResponse(result, cachePath).ConfigureAwait(false);
return result;
}
@@ -883,8 +893,11 @@ namespace Emby.Server.Implementations.Channels
{
Directory.CreateDirectory(Path.GetDirectoryName(path));
- await using FileStream createStream = File.Create(path);
- await JsonSerializer.SerializeAsync(createStream, result, _jsonOptions).ConfigureAwait(false);
+ var createStream = File.Create(path);
+ await using (createStream.ConfigureAwait(false))
+ {
+ await JsonSerializer.SerializeAsync(createStream, result, _jsonOptions).ConfigureAwait(false);
+ }
}
catch (Exception ex)
{
diff --git a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
index ca8e204d7..426165de6 100644
--- a/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/Emby.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -105,9 +105,9 @@ namespace Emby.Server.Implementations.LiveTv
/// <value>The services.</value>
public IReadOnlyList<ILiveTvService> Services => _services;
- public ITunerHost[] TunerHosts => _tunerHosts;
+ public IReadOnlyList<ITunerHost> TunerHosts => _tunerHosts;
- public IListingsProvider[] ListingProviders => _listingProviders;
+ public IReadOnlyList<IListingsProvider> ListingProviders => _listingProviders;
private LiveTvOptions GetConfiguration()
{
diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
index 3b6a16dee..4206159e7 100644
--- a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
+++ b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs
@@ -36,7 +36,7 @@ namespace MediaBrowser.Controller.LiveTv
/// <value>The services.</value>
IReadOnlyList<ILiveTvService> Services { get; }
- IListingsProvider[] ListingProviders { get; }
+ IReadOnlyList<IListingsProvider> ListingProviders { get; }
/// <summary>
/// Gets the new timer defaults asynchronous.