From a236af66eef55125930b4faefe7c08a46f19b202 Mon Sep 17 00:00:00 2001 From: jackun Date: Mon, 8 Jun 2020 19:09:10 +0300 Subject: [PATCH] Lock metadata mutexes in case they are cleared by inotify thread --- src/overlay_params.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 4c9b9989..df3aa550 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -466,8 +466,15 @@ parse_overlay_config(struct overlay_params *params, #ifdef HAVE_DBUS if (params->enabled[OVERLAY_PARAM_ENABLED_media_player]) { - main_metadata.clear(); - generic_mpris.clear(); + // lock mutexes for config file change notifier thread + { + std::lock_guard lk(main_metadata.mutex); + main_metadata.clear(); + } + { + std::lock_guard lk(generic_mpris.mutex); + generic_mpris.clear(); + } if (dbusmgr::dbus_mgr.init(params->media_player_name)) { if (!get_media_player_metadata(dbusmgr::dbus_mgr, params->media_player_name, main_metadata)) std::cerr << "MANGOHUD: Failed to get initial media player metadata." << std::endl;