diff --git a/src/Tgstation.Server.Host/Components/Engine/EngineManager.cs b/src/Tgstation.Server.Host/Components/Engine/EngineManager.cs index b09dc5860d..0ae4dbf9ee 100644 --- a/src/Tgstation.Server.Host/Components/Engine/EngineManager.cs +++ b/src/Tgstation.Server.Host/Components/Engine/EngineManager.cs @@ -78,7 +78,7 @@ namespace Tgstation.Server.Host.Components.Engine /// /// that notifes when the changes. /// - TaskCompletionSource activeVersionChanged; + volatile TaskCompletionSource activeVersionChanged; /// /// Validates a given parameter. @@ -158,8 +158,8 @@ namespace Tgstation.Server.Host.Components.Engine ActiveVersion = version; logger.LogInformation("Active version changed to {version}", version); - activeVersionChanged.SetResult(); - activeVersionChanged = new TaskCompletionSource(); + var oldTcs = Interlocked.Exchange(ref activeVersionChanged, new TaskCompletionSource()); + oldTcs.SetResult(); } }