mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Merge pull request #12117 from JosJuice/config-callback-cpu
Don't call RunAsCPUThread in config callbacks
This commit is contained in:
@ -7,6 +7,8 @@
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/MemoryUtil.h"
|
||||
#include "Common/Thread.h"
|
||||
|
||||
#include "Core/CPUThreadConfigCallback.h"
|
||||
#include "Core/Config/MainSettings.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/Core.h"
|
||||
@ -64,14 +66,14 @@ JitBase::JitBase(Core::System& system)
|
||||
: m_code_buffer(code_buffer_size), m_system(system), m_ppc_state(system.GetPPCState()),
|
||||
m_mmu(system.GetMMU())
|
||||
{
|
||||
m_registered_config_callback_id = Config::AddConfigChangedCallback(
|
||||
[this] { Core::RunAsCPUThread([this] { RefreshConfig(); }); });
|
||||
m_registered_config_callback_id =
|
||||
CPUThreadConfigCallback::AddConfigChangedCallback([this] { RefreshConfig(); });
|
||||
RefreshConfig();
|
||||
}
|
||||
|
||||
JitBase::~JitBase()
|
||||
{
|
||||
Config::RemoveConfigChangedCallback(m_registered_config_callback_id);
|
||||
CPUThreadConfigCallback::RemoveConfigChangedCallback(m_registered_config_callback_id);
|
||||
}
|
||||
|
||||
void JitBase::RefreshConfig()
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "Common/BitSet.h"
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/x64Emitter.h"
|
||||
#include "Core/CPUThreadConfigCallback.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/MachineContext.h"
|
||||
#include "Core/PowerPC/CPUCoreBase.h"
|
||||
@ -129,7 +130,7 @@ protected:
|
||||
PPCAnalyst::CodeBuffer m_code_buffer;
|
||||
PPCAnalyst::PPCAnalyzer analyzer;
|
||||
|
||||
size_t m_registered_config_callback_id;
|
||||
CPUThreadConfigCallback::ConfigChangedCallbackID m_registered_config_callback_id;
|
||||
bool bJITOff = false;
|
||||
bool bJITLoadStoreOff = false;
|
||||
bool bJITLoadStorelXzOff = false;
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/Config/Config.h"
|
||||
|
||||
class PointerWrap;
|
||||
|
||||
@ -61,7 +62,7 @@ struct Cache
|
||||
|
||||
struct InstructionCache : public Cache
|
||||
{
|
||||
std::optional<size_t> m_config_callback_id = std::nullopt;
|
||||
std::optional<Config::ConfigChangedCallbackID> m_config_callback_id = std::nullopt;
|
||||
|
||||
bool m_disable_icache = false;
|
||||
|
||||
|
Reference in New Issue
Block a user