Revert "Remove SafeHandle as referencing it does nothing"

This reverts commit cafc29b513.
This commit is contained in:
Dominion
2023-04-15 15:12:06 -04:00
parent 8cf7c3e08c
commit 19222c9d65
@@ -42,6 +42,12 @@ namespace Tgstation.Server.Host.System
/// </summary>
readonly CancellationTokenSource readerCts;
/// <summary>
/// The <see cref="global::System.Diagnostics.Process.SafeHandle"/>.
/// </summary>
/// <remarks>We keep this to prevent .NET from closing the real handle too soon. See https://stackoverflow.com/a/47656845</remarks>
readonly SafeProcessHandle safeHandle;
/// <summary>
/// The <see cref="Task{TResult}"/> resulting in the process' standard output/error text.
/// </summary>
@@ -69,6 +75,7 @@ namespace Tgstation.Server.Host.System
this.handle = handle ?? throw new ArgumentNullException(nameof(handle));
// Do this fast because the runtime will bitch if we try to access it after it ends
safeHandle = handle.SafeHandle;
Id = handle.Id;
this.readerCts = readerCts;
@@ -115,6 +122,7 @@ namespace Tgstation.Server.Host.System
if (readTask != null)
await readTask;
safeHandle.Dispose();
handle.Dispose();
}