From adedc4088f020ad7c6c7fe120afca5aefac8b685 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sun, 29 Jan 2017 11:02:29 +0100 Subject: [PATCH] [IPCHandler] Only run worker for the first instance --- src/Components/Modules/IPCHandler.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Components/Modules/IPCHandler.cpp b/src/Components/Modules/IPCHandler.cpp index 31f2d338..1177fe11 100644 --- a/src/Components/Modules/IPCHandler.cpp +++ b/src/Components/Modules/IPCHandler.cpp @@ -20,6 +20,7 @@ namespace Components void IPCHandler::SendWorker(std::string message, std::string data) { IPCHandler::InitChannels(); + if (!Singleton::IsFirstInstance()) return; Proto::IPC::Command command; command.set_name(message); @@ -51,9 +52,12 @@ namespace Components void IPCHandler::InitChannels() { - if (!IPCHandler::WorkerChannel) + if (Singleton::IsFirstInstance()) { - IPCHandler::WorkerChannel.reset(new Utils::IPC::BidirectionalChannel("IW4x-Worker-Channel", !Worker::IsWorker())); + if (!IPCHandler::WorkerChannel) + { + IPCHandler::WorkerChannel.reset(new Utils::IPC::BidirectionalChannel("IW4x-Worker-Channel", !Worker::IsWorker())); + } } if (!IPCHandler::ClientChannel) @@ -64,6 +68,8 @@ namespace Components void IPCHandler::StartWorker() { + if (!Singleton::IsFirstInstance()) return; + STARTUPINFOA sInfo; PROCESS_INFORMATION pInfo; @@ -99,6 +105,7 @@ namespace Components void IPCHandler::HandleWorker() { IPCHandler::InitChannels(); + if (!Singleton::IsFirstInstance()) return; std::string packet; if (IPCHandler::WorkerChannel->receive(&packet))