diff --git a/WeaselIPCServer/WeaselServerImpl.cpp b/WeaselIPCServer/WeaselServerImpl.cpp index 3b5075b42..11225c445 100644 --- a/WeaselIPCServer/WeaselServerImpl.cpp +++ b/WeaselIPCServer/WeaselServerImpl.cpp @@ -1,5 +1,6 @@ #include "stdafx.h" #include "WeaselServerImpl.h" +#include #include #include #include @@ -161,6 +162,8 @@ int ServerImpl::Stop() { return 0; } +static std::mutex g_api_mutex; + int ServerImpl::Run() { // This workaround causes a VC internal error: // void PipeServer::Listen(ServerHandler handler); @@ -168,8 +171,8 @@ int ServerImpl::Run() { // auto handler = boost::bind(&ServerImpl::HandlePipeMessage, this); // auto listener = boost::bind(&PipeServer::Listen, channel.get(), handler); // - auto listener = [this](PipeMessage msg, PipeServer::Respond resp) -> void { + std::lock_guard guard(g_api_mutex); HandlePipeMessage(msg, resp); }; pipeThread = std::make_unique(