Merge pull request #11635 from Dentomologist/wiimote_fix_disconnection_deadlock

ControllerInterface: Fix deadlock when Wii Remote disconnects
This commit is contained in:
Pierre Bourdon 2023-03-14 02:41:36 +01:00 committed by GitHub
commit 3783bedc25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 0 deletions

View File

@ -372,6 +372,14 @@ void ControllerInterface::UpdateInput()
// TODO: if we are an emulation input channel, we should probably always lock
// Prefer outdated values over blocking UI or CPU thread (avoids short but noticeable frame drop)
// Lock this first to avoid deadlock with m_devices_mutex in certain cases (such as a Wii Remote
// getting disconnected)
if (!m_devices_population_mutex.try_lock())
return;
std::lock_guard population_lock(m_devices_population_mutex, std::adopt_lock);
if (!m_devices_mutex.try_lock())
return;