@@ -19,6 +19,7 @@ using websocketpp::lib::bind;
19
19
20
20
using websocketpp::lib::thread;
21
21
using websocketpp::lib::mutex;
22
+ using websocketpp::lib::lock_guard;
22
23
using websocketpp::lib::unique_lock;
23
24
using websocketpp::lib::condition_variable;
24
25
@@ -71,27 +72,30 @@ class broadcast_server {
71
72
}
72
73
73
74
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
+ }
78
80
m_action_cond.notify_one ();
79
81
}
80
82
81
83
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
+ }
86
89
m_action_cond.notify_one ();
87
90
}
88
91
89
92
void on_message (connection_hdl hdl, server::message_ptr msg) {
90
93
// 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
+ }
95
99
m_action_cond.notify_one ();
96
100
}
97
101
@@ -109,13 +113,13 @@ class broadcast_server {
109
113
lock.unlock ();
110
114
111
115
if (a.type == SUBSCRIBE) {
112
- unique_lock <mutex> con_lock (m_connection_lock);
116
+ lock_guard <mutex> guard (m_connection_lock);
113
117
m_connections.insert (a.hdl );
114
118
} else if (a.type == UNSUBSCRIBE) {
115
- unique_lock <mutex> con_lock (m_connection_lock);
119
+ lock_guard <mutex> guard (m_connection_lock);
116
120
m_connections.erase (a.hdl );
117
121
} else if (a.type == MESSAGE) {
118
- unique_lock <mutex> con_lock (m_connection_lock);
122
+ lock_guard <mutex> guard (m_connection_lock);
119
123
120
124
con_list::iterator it;
121
125
for (it = m_connections.begin (); it != m_connections.end (); ++it) {
0 commit comments