diff --git a/include/modules/sway/ipc/client.hpp b/include/modules/sway/ipc/client.hpp index 6ab3c6cc..ddd4c5ac 100644 --- a/include/modules/sway/ipc/client.hpp +++ b/include/modules/sway/ipc/client.hpp @@ -44,6 +44,7 @@ class Ipc { int fd_event_; std::mutex mutex_; std::mutex mutex_event_; + std::mutex mutex_parser_; util::JsonParser parser_; }; diff --git a/src/modules/sway/ipc/client.cpp b/src/modules/sway/ipc/client.cpp index 7c5db7c5..dc121fa9 100644 --- a/src/modules/sway/ipc/client.cpp +++ b/src/modules/sway/ipc/client.cpp @@ -104,6 +104,7 @@ struct Ipc::ipc_response Ipc::recv(int fd) { } total += res; } + std::lock_guard lock(mutex_parser_); auto parsed = parser_.parse(&payload.front()); return {data32[0], data32[1], parsed}; }