From 7d49ebfc3c661f2ab230bd9f465074f5f02a6648 Mon Sep 17 00:00:00 2001 From: goaaats Date: Fri, 3 Jun 2022 17:45:54 +0200 Subject: [PATCH] fix: continue main thread on C++ side again, circumvents a race condition - we should fix this for good! --- Dalamud.Boot/rewrite_entrypoint.cpp | 4 ++-- Dalamud/Dalamud.cs | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Dalamud.Boot/rewrite_entrypoint.cpp b/Dalamud.Boot/rewrite_entrypoint.cpp index d01f05b2a..3b24c02c3 100644 --- a/Dalamud.Boot/rewrite_entrypoint.cpp +++ b/Dalamud.Boot/rewrite_entrypoint.cpp @@ -393,10 +393,10 @@ DllExport void WINAPI RewrittenEntryPoint(RewrittenEntryPointParameters& params) loadInfo = params.pLoadInfo; // Let the game initialize. - //SetEvent(params.hMainThreadContinue); + SetEvent(params.hMainThreadContinue); } - //wait_for_game_window(); + wait_for_game_window(); Initialize(&loadInfo[0], params.hMainThreadContinue); return 0; diff --git a/Dalamud/Dalamud.cs b/Dalamud/Dalamud.cs index 102c09ec5..e9fef946e 100644 --- a/Dalamud/Dalamud.cs +++ b/Dalamud/Dalamud.cs @@ -110,8 +110,9 @@ namespace Dalamud Service.Set(); // Signal the main game thread to continue - NativeFunctions.SetEvent(this.mainThreadContinueEvent); - Log.Information("[T1] Game thread continued!"); + // TODO: This is done in rewrite_entrypoint.cpp again to avoid a race condition. Should be fixed! + // NativeFunctions.SetEvent(this.mainThreadContinueEvent); + // Log.Information("[T1] Game thread continued!"); // Initialize FFXIVClientStructs function resolver using (Timings.Start("CS Resolver Init"))