diff --git a/src/Tgstation.Server.Host/Core/Process.cs b/src/Tgstation.Server.Host/Core/Process.cs index 21856ed710..9f9c621c0f 100644 --- a/src/Tgstation.Server.Host/Core/Process.cs +++ b/src/Tgstation.Server.Host/Core/Process.cs @@ -41,7 +41,6 @@ namespace Tgstation.Server.Host.Core public Process(System.Diagnostics.Process handle, Task lifetime, StringBuilder outputStringBuilder, StringBuilder errorStringBuilder, StringBuilder combinedStringBuilder, ILogger logger, bool preExisting) { this.handle = handle ?? throw new ArgumentNullException(nameof(handle)); - Lifetime = lifetime ?? throw new ArgumentNullException(nameof(lifetime)); this.outputStringBuilder = outputStringBuilder; this.errorStringBuilder = errorStringBuilder; @@ -49,6 +48,8 @@ namespace Tgstation.Server.Host.Core this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + Lifetime = WrapLifetimeTask(lifetime ?? throw new ArgumentNullException(nameof(lifetime))); + Id = handle.Id; if (preExisting) @@ -72,6 +73,13 @@ namespace Tgstation.Server.Host.Core /// public void Dispose() => handle.Dispose(); + async Task WrapLifetimeTask(Task lifetimeTask) + { + var result = await lifetimeTask.ConfigureAwait(false); + logger.LogTrace("Process {0} ended with code {1}", Id, result); + return result; + } + /// public string GetCombinedOutput() {