exclusive_monitor: Don't lock when disabled
This commit is contained in:
@@ -14,6 +14,12 @@ ExclusiveMonitor::~ExclusiveMonitor() = default;
|
||||
std::unique_ptr<Core::ExclusiveMonitor> MakeExclusiveMonitor(Memory::Memory& memory,
|
||||
std::size_t num_cores) {
|
||||
#if defined(ARCHITECTURE_x86_64) || defined(ARCHITECTURE_arm64)
|
||||
const bool no_locking =
|
||||
Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Auto ||
|
||||
(Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe &&
|
||||
Settings::values.cpuopt_unsafe_ignore_global_monitor);
|
||||
if (no_locking)
|
||||
return std::make_unique<Core::DynarmicExclusiveMonitorNoLocking>(memory, num_cores);
|
||||
return std::make_unique<Core::DynarmicExclusiveMonitor>(memory, num_cores);
|
||||
#else
|
||||
// TODO(merry): Passthrough exclusive monitor
|
||||
|
||||
Reference in New Issue
Block a user