Skip to content

Commit ae097d6

Browse files
committed
Merge pull request zaphoyd#508 from mgeier/lock-guard
broadcast_server: replace explicit unlock() by scoped unlock
2 parents d080299 + aac65bd commit ae097d6

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

examples/broadcast_server/broadcast_server.cpp

+19-15
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ using websocketpp::lib::bind;
1919

2020
using websocketpp::lib::thread;
2121
using websocketpp::lib::mutex;
22+
using websocketpp::lib::lock_guard;
2223
using websocketpp::lib::unique_lock;
2324
using websocketpp::lib::condition_variable;
2425

@@ -71,27 +72,30 @@ class broadcast_server {
7172
}
7273

7374
void on_open(connection_hdl hdl) {
74-
unique_lock<mutex> lock(m_action_lock);
75-
//std::cout << "on_open" << std::endl;
76-
m_actions.push(action(SUBSCRIBE,hdl));
77-
lock.unlock();
75+
{
76+
lock_guard<mutex> guard(m_action_lock);
77+
//std::cout << "on_open" << std::endl;
78+
m_actions.push(action(SUBSCRIBE,hdl));
79+
}
7880
m_action_cond.notify_one();
7981
}
8082

8183
void on_close(connection_hdl hdl) {
82-
unique_lock<mutex> lock(m_action_lock);
83-
//std::cout << "on_close" << std::endl;
84-
m_actions.push(action(UNSUBSCRIBE,hdl));
85-
lock.unlock();
84+
{
85+
lock_guard<mutex> guard(m_action_lock);
86+
//std::cout << "on_close" << std::endl;
87+
m_actions.push(action(UNSUBSCRIBE,hdl));
88+
}
8689
m_action_cond.notify_one();
8790
}
8891

8992
void on_message(connection_hdl hdl, server::message_ptr msg) {
9093
// queue message up for sending by processing thread
91-
unique_lock<mutex> lock(m_action_lock);
92-
//std::cout << "on_message" << std::endl;
93-
m_actions.push(action(MESSAGE,hdl,msg));
94-
lock.unlock();
94+
{
95+
lock_guard<mutex> guard(m_action_lock);
96+
//std::cout << "on_message" << std::endl;
97+
m_actions.push(action(MESSAGE,hdl,msg));
98+
}
9599
m_action_cond.notify_one();
96100
}
97101

@@ -109,13 +113,13 @@ class broadcast_server {
109113
lock.unlock();
110114

111115
if (a.type == SUBSCRIBE) {
112-
unique_lock<mutex> con_lock(m_connection_lock);
116+
lock_guard<mutex> guard(m_connection_lock);
113117
m_connections.insert(a.hdl);
114118
} else if (a.type == UNSUBSCRIBE) {
115-
unique_lock<mutex> con_lock(m_connection_lock);
119+
lock_guard<mutex> guard(m_connection_lock);
116120
m_connections.erase(a.hdl);
117121
} else if (a.type == MESSAGE) {
118-
unique_lock<mutex> con_lock(m_connection_lock);
122+
lock_guard<mutex> guard(m_connection_lock);
119123

120124
con_list::iterator it;
121125
for (it = m_connections.begin(); it != m_connections.end(); ++it) {

0 commit comments

Comments
 (0)