소스 검색

lock connection when writing to websockets in Lua

bel2125 8 년 전
부모
커밋
d74d424436
1개의 변경된 파일5개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      src/mod_lua.inl

+ 5 - 0
src/mod_lua.inl

@@ -1129,12 +1129,16 @@ lwebsock_write(lua_State *L)
 		if (client) {
 			for (i = 0; i < ws->references; i++) {
 				if (client == ws->conn[i]) {
+					mg_lock_connection(ws->conn[i]);
 					mg_websocket_write(ws->conn[i], opcode, str, size);
+					mg_unlock_connection(ws->con[i]);
 				}
 			}
 		} else {
 			for (i = 0; i < ws->references; i++) {
+				mg_lock_connection(ws->conn[i]);
 				mg_websocket_write(ws->conn[i], opcode, str, size);
+				mg_unlock_connection(ws->con[i]);
 			}
 		}
 	} else {
@@ -2052,3 +2056,4 @@ lua_exit_optional_libraries(void)
 	pf_uuid_generate.p = 0;
 	lib_handle_uuid = NULL;
 }
+