MultiplexedSocket: lock in getChannelList

Change-Id: I377ca001dbc1821b3b22dfc83d7b2677cc344477
diff --git a/src/multiplexed_socket.cpp b/src/multiplexed_socket.cpp
index 9c1f952..b34bf07 100644
--- a/src/multiplexed_socket.cpp
+++ b/src/multiplexed_socket.cpp
@@ -1214,17 +1214,15 @@
 std::vector<std::map<std::string, std::string>>
 MultiplexedSocket::getChannelList() const
 {
+    std::lock_guard<std::mutex> lkSockets(pimpl_->socketsMutex);
     std::vector<std::map<std::string, std::string>> channelsList;
-
+    channelsList.reserve(pimpl_->sockets.size());
     for (const auto& [_, channel] : pimpl_->sockets) {
-        if (channel) {
-            std::map<std::string, std::string> channelMap;
-            channelMap["channel"] = std::to_string(channel->channel());
-            channelMap["channelName"]= channel->name();
-            channelsList.emplace_back(std::move(channelMap));
-        }
+        channelsList.emplace_back(std::map<std::string, std::string> {
+            {"id", fmt::format("{:x}", channel->channel())},
+            {"name", channel->name()},
+        });
     }
-
     return channelsList;
 }