From 5c250c17254ec89db2aee7ba34afd2925eca3923 Mon Sep 17 00:00:00 2001 From: goaaats Date: Tue, 27 Jan 2026 23:43:51 +0100 Subject: [PATCH] Make Framework.DelayTicks() deadlock-safe before the game has started --- Dalamud/Game/Framework.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dalamud/Game/Framework.cs b/Dalamud/Game/Framework.cs index 035745684..e40274043 100644 --- a/Dalamud/Game/Framework.cs +++ b/Dalamud/Game/Framework.cs @@ -121,9 +121,9 @@ internal sealed class Framework : IInternalDisposableService, IFramework /// public Task DelayTicks(long numTicks, CancellationToken cancellationToken = default) { - if (this.frameworkDestroy.IsCancellationRequested) + if (this.frameworkDestroy.IsCancellationRequested) // Going away return Task.FromCanceled(this.frameworkDestroy.Token); - if (numTicks <= 0) + if (numTicks <= 0 || this.frameworkThreadTaskScheduler.BoundThread == null) // Nonsense or before first tick return Task.CompletedTask; var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);