Make sure Process objects are all disposed correctly

This commit is contained in:
Mark Monteiro 2020-03-27 00:49:22 +01:00
parent b947d98266
commit 7447ea8960
2 changed files with 12 additions and 7 deletions

View File

@ -289,6 +289,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
/// Processes the exited. /// Processes the exited.
/// </summary> /// </summary>
private void OnFfMpegProcessExited(Process process, string inputFile) private void OnFfMpegProcessExited(Process process, string inputFile)
{
try
{ {
_hasExited = true; _hasExited = true;
@ -314,6 +316,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
exitCode))); exitCode)));
} }
} }
finally
{
process.Dispose();
}
}
private async void StartStreamingLog(Stream source, Stream target) private async void StartStreamingLog(Stream source, Stream target)
{ {

View File

@ -436,6 +436,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
ErrorDialog = false ErrorDialog = false
}; };
var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true }; var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
process.Exited += (sender, args) => ((Process)sender).Dispose();
_logger.LogInformation("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments); _logger.LogInformation("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
@ -468,8 +469,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
var exitCode = ranToCompletion ? process.ExitCode : -1; var exitCode = ranToCompletion ? process.ExitCode : -1;
process.Dispose();
var failed = false; var failed = false;
if (exitCode == -1) if (exitCode == -1)
@ -585,6 +584,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
ErrorDialog = false ErrorDialog = false
}; };
var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true }; var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
process.Exited += (sender, args) => ((Process)sender).Dispose();
_logger.LogInformation("{File} {Arguments}", process.StartInfo.FileName, process.StartInfo.Arguments); _logger.LogInformation("{File} {Arguments}", process.StartInfo.FileName, process.StartInfo.Arguments);
@ -617,8 +617,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
var exitCode = ranToCompletion ? process.ExitCode : -1; var exitCode = ranToCompletion ? process.ExitCode : -1;
process.Dispose();
var failed = false; var failed = false;
if (exitCode == -1) if (exitCode == -1)