diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/transport_manager/include/transport_manager/websocket_server/websocket_session.h | 2 | ||||
-rw-r--r-- | src/components/transport_manager/src/websocket_server/websocket_session.cc | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/components/transport_manager/include/transport_manager/websocket_server/websocket_session.h b/src/components/transport_manager/include/transport_manager/websocket_server/websocket_session.h index 009d2fe07c..afdacfc4ec 100644 --- a/src/components/transport_manager/include/transport_manager/websocket_server/websocket_session.h +++ b/src/components/transport_manager/include/transport_manager/websocket_server/websocket_session.h @@ -38,6 +38,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "protocol/raw_message.h" #include "transport_manager/transport_adapter/transport_adapter.h" +#include "utils/lock.h" #include "utils/logger.h" #ifdef ENABLE_SECURITY @@ -103,6 +104,7 @@ class WebSocketSession DataSendDoneCallback data_send_done_; DataSendFailedCallback data_send_failed_; OnIOErrorCallback on_io_error_; + mutable sync_primitives::Lock read_write_operations_lock_; }; } // namespace transport_adapter diff --git a/src/components/transport_manager/src/websocket_server/websocket_session.cc b/src/components/transport_manager/src/websocket_server/websocket_session.cc index 020da580f9..c95cdd2c46 100644 --- a/src/components/transport_manager/src/websocket_server/websocket_session.cc +++ b/src/components/transport_manager/src/websocket_server/websocket_session.cc @@ -89,6 +89,7 @@ void WebSocketSession<ExecutorType>::AsyncAccept() { template <typename ExecutorType> void WebSocketSession<ExecutorType>::AsyncRead(boost::system::error_code ec) { SDL_LOG_AUTO_TRACE(); + sync_primitives::AutoLock lock(read_write_operations_lock_); if (ec) { auto str_err = "ErrorMessage: " + ec.message(); SDL_LOG_ERROR(str_err); @@ -106,6 +107,7 @@ void WebSocketSession<ExecutorType>::AsyncRead(boost::system::error_code ec) { template <typename ExecutorType> void WebSocketSession<ExecutorType>::WriteDown(Message message) { + sync_primitives::AutoLock lock(read_write_operations_lock_); boost::system::error_code ec; ws_.write(boost::asio::buffer(message->data(), message->data_size()), ec); |