summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2022-07-11 16:52:05 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2022-07-11 16:52:05 +0200
commit9056ca8615ea6e9e6cb0aa0af662b9bff9fa528c (patch)
tree38e4e87b33fc6625d5365dc09543bc7600ddf609 /src
parentFix race condition in dbus API (diff)
downloadnheko-9056ca8615ea6e9e6cb0aa0af662b9bff9fa528c.tar.xz
Use normal instead of recursive mutex
Diffstat (limited to 'src')
-rw-r--r--src/dbus/NhekoDBusBackend.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/dbus/NhekoDBusBackend.cpp b/src/dbus/NhekoDBusBackend.cpp

index ea7a8940..9abc0433 100644 --- a/src/dbus/NhekoDBusBackend.cpp +++ b/src/dbus/NhekoDBusBackend.cpp
@@ -26,7 +26,7 @@ struct RoomReplyState { QVector<nheko::dbus::RoomInfoItem> model; std::map<QString, RoomInfo> roominfos; - std::recursive_mutex m; + std::mutex m; }; } @@ -47,7 +47,6 @@ NhekoDBusBackend::rooms(const QDBusMessage &message) } state->roominfos = cache::getRoomInfo(roomids); - std::lock_guard<std::recursive_mutex> parentLock(state->m); for (const auto &room : roomListModel) { auto addRoom = [room, roomListModelSize = roomListModel.size(), message, state]( const QImage &image) { @@ -62,6 +61,7 @@ NhekoDBusBackend::rooms(const QDBusMessage &message) alias = QString::fromStdString(val.alt_aliases.front()); } + std::lock_guard<std::mutex> childLock(state->m); state->model.push_back(nheko::dbus::RoomInfoItem{ room->roomId(), alias, @@ -69,7 +69,6 @@ NhekoDBusBackend::rooms(const QDBusMessage &message) image, room->notificationCount()}); - std::lock_guard<std::recursive_mutex> childLock(state->m); if (state->model.size() == roomListModelSize) { nhlog::ui()->debug("Sending {} rooms over D-Bus...", state->model.size()); auto reply = message.createReply();