mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-11-27 11:53:18 +00:00
Removed useless locks to DeviceContainer::m_devices_mutex, as they were all already protected by m_devices_population_mutex. We have no interest in blocking other threads that were potentially reading devices at the same time so this seems fine. This simplifies the code, and I've adjusted a few comments which mentioned possible deadlock that should now be totally gone. The deadlock could have happen if a thread directly called EmulatedController::UpdateReferences(), while another another thread also reached EmulatedController::UpdateReferences() within a call to ControllerInterface::UpdateDevices(), as the mentioned function locked both the DeviceContainer::m_devices_mutex and s_get_state_mutex at the same time. The deadlock was frequent on game emulation startup on Android, due to the UpdateReferences() call in InputConfig::LoadConfig() and the UI thread triggering calls to ControllerInterface::UpdateDevices(). It could also have happened on Desktop if a user pressed "Refresh Devices" manually in the UI while the input config was loading. Also brought some UpdateReferences() comments and thread safety fixes from https://github.com/dolphin-emu/dolphin/pull/9489 |
||
|---|---|---|
| .. | ||
| Config | ||
| Debugger | ||
| FIFO | ||
| GameList | ||
| NetPlay | ||
| QtUtils | ||
| Settings | ||
| TAS | ||
| AboutDialog.cpp | ||
| AboutDialog.h | ||
| CheatSearchFactoryWidget.cpp | ||
| CheatSearchFactoryWidget.h | ||
| CheatSearchWidget.cpp | ||
| CheatSearchWidget.h | ||
| CheatsManager.cpp | ||
| CheatsManager.h | ||
| CMakeLists.txt | ||
| ConvertDialog.cpp | ||
| ConvertDialog.h | ||
| DiscordHandler.cpp | ||
| DiscordHandler.h | ||
| DiscordJoinRequestDialog.cpp | ||
| DiscordJoinRequestDialog.h | ||
| DolphinEmu.entitlements | ||
| DolphinEmuDebug.entitlements | ||
| DolphinQt.manifest | ||
| DolphinQt.rc | ||
| DolphinQt.vcxproj | ||
| DolphinQt.vcxproj.user | ||
| GBAHost.cpp | ||
| GBAHost.h | ||
| GBAWidget.cpp | ||
| GBAWidget.h | ||
| GCMemcardCreateNewDialog.cpp | ||
| GCMemcardCreateNewDialog.h | ||
| GCMemcardManager.cpp | ||
| GCMemcardManager.h | ||
| Host.cpp | ||
| Host.h | ||
| HotkeyScheduler.cpp | ||
| HotkeyScheduler.h | ||
| Info.plist.in | ||
| Main.cpp | ||
| MainWindow.cpp | ||
| MainWindow.h | ||
| MenuBar.cpp | ||
| MenuBar.h | ||
| NKitWarningDialog.cpp | ||
| NKitWarningDialog.h | ||
| qt.conf | ||
| qt.conf.win | ||
| RenderWidget.cpp | ||
| RenderWidget.h | ||
| resource.h | ||
| ResourcePackManager.cpp | ||
| ResourcePackManager.h | ||
| Resources.cpp | ||
| Resources.h | ||
| RiivolutionBootWidget.cpp | ||
| RiivolutionBootWidget.h | ||
| SearchBar.cpp | ||
| SearchBar.h | ||
| Settings.cpp | ||
| Settings.h | ||
| ToolBar.cpp | ||
| ToolBar.h | ||
| Translation.cpp | ||
| Translation.h | ||
| Updater.cpp | ||
| Updater.h | ||
| WiiUpdate.cpp | ||
| WiiUpdate.h | ||