diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-10-20 12:16:56 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2017-10-20 12:16:56 -0400 |
| commit | 060215143ff62e4cf475a493e57c8607beca8640 (patch) | |
| tree | 1d1095525a83bb8183184db952d28556bc05f323 /Emby.Server.Implementations/LiveTv/TunerHosts | |
| parent | 86226ff97c7d6dc4005c3bb1978861e948de1e20 (diff) | |
improve httpclient resource disposal
Diffstat (limited to 'Emby.Server.Implementations/LiveTv/TunerHosts')
| -rw-r--r-- | Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs | 38 | ||||
| -rw-r--r-- | Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs | 15 |
2 files changed, 31 insertions, 22 deletions
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs index cfdaaed101..f8bb766d2f 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs +++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs @@ -86,16 +86,19 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun CancellationToken = cancellationToken, BufferContent = false }; - using (var stream = await _httpClient.Get(options).ConfigureAwait(false)) + using (var response = await _httpClient.SendAsync(options, "GET").ConfigureAwait(false)) { - var lineup = JsonSerializer.DeserializeFromStream<List<Channels>>(stream) ?? new List<Channels>(); - - if (info.ImportFavoritesOnly) + using (var stream = response.Content) { - lineup = lineup.Where(i => i.Favorite).ToList(); - } + var lineup = JsonSerializer.DeserializeFromStream<List<Channels>>(stream) ?? new List<Channels>(); + + if (info.ImportFavoritesOnly) + { + lineup = lineup.Where(i => i.Favorite).ToList(); + } - return lineup.Where(i => !i.DRM).ToList(); + return lineup.Where(i => !i.DRM).ToList(); + } } } @@ -143,26 +146,29 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun try { - using (var stream = await _httpClient.Get(new HttpRequestOptions() + using (var response = await _httpClient.SendAsync(new HttpRequestOptions() { Url = string.Format("{0}/discover.json", GetApiUrl(info, false)), CancellationToken = cancellationToken, TimeoutMs = Convert.ToInt32(TimeSpan.FromSeconds(5).TotalMilliseconds), BufferContent = false - }).ConfigureAwait(false)) + }, "GET").ConfigureAwait(false)) { - var response = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); - - if (!string.IsNullOrWhiteSpace(info.Id)) + using (var stream = response.Content) { - lock (_modelCache) + var discoverResponse = JsonSerializer.DeserializeFromStream<DiscoverResponse>(stream); + + if (!string.IsNullOrWhiteSpace(info.Id)) { - _modelCache[info.Id] = response; + lock (_modelCache) + { + _modelCache[info.Id] = discoverResponse; + } } - } - return response; + return discoverResponse; + } } } catch (HttpException ex) diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs index ad9c0d8943..f3d89c6cc9 100644 --- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs +++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHttpStream.cs @@ -92,14 +92,17 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun }, "GET").ConfigureAwait(false)) { - Logger.Info("Opened HDHR stream from {0}", url); + using (var stream = response.Content) + { + Logger.Info("Opened HDHR stream from {0}", url); - Logger.Info("Beginning multicastStream.CopyUntilCancelled"); + Logger.Info("Beginning multicastStream.CopyUntilCancelled"); - FileSystem.CreateDirectory(FileSystem.GetDirectoryName(TempFilePath)); - using (var fileStream = FileSystem.GetFileStream(TempFilePath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, FileOpenOptions.None)) - { - StreamHelper.CopyTo(response.Content, fileStream, 81920, () => Resolve(openTaskCompletionSource), cancellationToken); + FileSystem.CreateDirectory(FileSystem.GetDirectoryName(TempFilePath)); + using (var fileStream = FileSystem.GetFileStream(TempFilePath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, FileOpenOptions.None)) + { + StreamHelper.CopyTo(stream, fileStream, 81920, () => Resolve(openTaskCompletionSource), cancellationToken); + } } } } |
