RetroAchievements: Fix potential deadlock on shutdown.

This commit is contained in:
Jordan Woyak committed 2025-05-14 01:10:53 -05:00
1 parent 059282df6f
commit 826f04d06c
4 files changed
+43 -24

No files matched your search

@@ -6,13 +6,12 @@
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QString>
#include <QVBoxLayout>
#include "Core/AchievementManager.h"
#include "Core/Config/AchievementSettings.h"
#include "Core/Config/FreeLookSettings.h"
#include "Core/Config/MainSettings.h"
#include "Core/Config/UISettings.h"
#include "Core/Core.h"
#include "Core/Movie.h"
@@ -22,7 +21,7 @@
#include "DolphinQt/Config/ControllerInterface/ControllerInterfaceWindow.h"
#include "DolphinQt/Config/ToolTipControls/ToolTipCheckBox.h"
#include "DolphinQt/QtUtils/ModalMessageBox.h"
#include "DolphinQt/QtUtils/NonDefaultQPushButton.h"
#include "DolphinQt/QtUtils/QueueOnObject.h"
#include "DolphinQt/QtUtils/SignalBlocking.h"
#include "DolphinQt/Settings.h"
@@ -252,9 +251,14 @@ void AchievementSettingsWidget::ToggleRAIntegration()
auto& instance = AchievementManager::GetInstance();
if (Config::Get(Config::RA_ENABLED))
instance.Init(reinterpret_cast<void*>(winId()));
{
instance.Init(reinterpret_cast<void*>(winId()),
[this](auto func) { QueueOnObject(this, std::move(func)); });
}
else
{
instance.Shutdown();
}
}
void AchievementSettingsWidget::Login()