diff --git a/daemon/websocket.c b/daemon/websocket.c index b930a7c31..9bf54dc70 100644 --- a/daemon/websocket.c +++ b/daemon/websocket.c @@ -103,21 +103,21 @@ static void __websocket_queue_raw(struct websocket_conn *wc, const char *msg, si // appends to output buffer without triggering a response void websocket_queue_raw(struct websocket_conn *wc, const char *msg, size_t len) { - mutex_lock(&wc->lock); + LOCK(&wc->lock); __websocket_queue_raw(wc, msg, len); - mutex_unlock(&wc->lock); } // num bytes in output buffer size_t websocket_queue_len(struct websocket_conn *wc) { - mutex_lock(&wc->lock); + LOCK(&wc->lock); + size_t ret = 0; for (GList *l = wc->output_q.head; l; l = l->next) { struct websocket_output *wo = l->data; ret += (wo->str->len - LWS_PRE); } - mutex_unlock(&wc->lock); + return ret; } @@ -159,9 +159,8 @@ int websocket_write_binary(struct websocket_conn *wc, const char *msg, size_t le void websocket_write_next(struct websocket_conn *wc) { - mutex_lock(&wc->lock); + LOCK(&wc->lock); g_queue_push_tail(&wc->output_q, websocket_output_new()); - mutex_unlock(&wc->lock); } @@ -176,7 +175,7 @@ static const char *websocket_echo_process(struct websocket_message *wm) { static void websocket_message_push(struct websocket_conn *wc, websocket_message_func_t func) { ilogs(http, LOG_DEBUG, "Adding HTTP/WS message to processing queue"); - mutex_lock(&wc->lock); + LOCK(&wc->lock); struct websocket_message *wm = wc->wm; assert(wm != NULL); @@ -187,8 +186,6 @@ static void websocket_message_push(struct websocket_conn *wc, websocket_message_ g_thread_pool_push(websocket_threads, wc, NULL); wc->wm = websocket_message_new(wc); - - mutex_unlock(&wc->lock); }