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) {