From aac65bdfd02db1930c35b20084a7405d96904cd8 Mon Sep 17 00:00:00 2001 From: Matthias Geier Date: Tue, 19 Jan 2016 12:31:23 +0100 Subject: [PATCH] broadcast_server: replace explicit unlock() by scoped unlock Also: Replace some instances of unique_lock with lock_guard. --- .../broadcast_server/broadcast_server.cpp | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/examples/broadcast_server/broadcast_server.cpp b/examples/broadcast_server/broadcast_server.cpp index e87e879..b02e7cd 100644 --- a/examples/broadcast_server/broadcast_server.cpp +++ b/examples/broadcast_server/broadcast_server.cpp @@ -19,6 +19,7 @@ using websocketpp::lib::bind; using websocketpp::lib::thread; using websocketpp::lib::mutex; +using websocketpp::lib::lock_guard; using websocketpp::lib::unique_lock; using websocketpp::lib::condition_variable; @@ -71,27 +72,30 @@ public: } void on_open(connection_hdl hdl) { - unique_lock lock(m_action_lock); - //std::cout << "on_open" << std::endl; - m_actions.push(action(SUBSCRIBE,hdl)); - lock.unlock(); + { + lock_guard guard(m_action_lock); + //std::cout << "on_open" << std::endl; + m_actions.push(action(SUBSCRIBE,hdl)); + } m_action_cond.notify_one(); } void on_close(connection_hdl hdl) { - unique_lock lock(m_action_lock); - //std::cout << "on_close" << std::endl; - m_actions.push(action(UNSUBSCRIBE,hdl)); - lock.unlock(); + { + lock_guard guard(m_action_lock); + //std::cout << "on_close" << std::endl; + m_actions.push(action(UNSUBSCRIBE,hdl)); + } m_action_cond.notify_one(); } void on_message(connection_hdl hdl, server::message_ptr msg) { // queue message up for sending by processing thread - unique_lock lock(m_action_lock); - //std::cout << "on_message" << std::endl; - m_actions.push(action(MESSAGE,hdl,msg)); - lock.unlock(); + { + lock_guard guard(m_action_lock); + //std::cout << "on_message" << std::endl; + m_actions.push(action(MESSAGE,hdl,msg)); + } m_action_cond.notify_one(); } @@ -109,13 +113,13 @@ public: lock.unlock(); if (a.type == SUBSCRIBE) { - unique_lock con_lock(m_connection_lock); + lock_guard guard(m_connection_lock); m_connections.insert(a.hdl); } else if (a.type == UNSUBSCRIBE) { - unique_lock con_lock(m_connection_lock); + lock_guard guard(m_connection_lock); m_connections.erase(a.hdl); } else if (a.type == MESSAGE) { - unique_lock con_lock(m_connection_lock); + lock_guard guard(m_connection_lock); con_list::iterator it; for (it = m_connections.begin(); it != m_connections.end(); ++it) {