void StartSession(const std::string& shmName, PlatformPtr platform, IpcMessageQueuePtr hostQueue){ for(auto& plugin : plugins){ try { std::string messageQueueName = UuidGenerator::Create()->GenerateUuid(RandChar::Create()); FlogExpD(messageQueueName); plugin.messageQueue = IpcMessageQueue::Create(messageQueueName, 2, 1024 * 1024 * 32, 4, 1024 * 16); plugin.process = platform->StartProcess(plugin.executable, {messageQueueName, shmName}, plugin.directory); plugin.started = true; SendArguments(plugin); } catch (PlatformEx e) { FlogE("could not start plugin: " << plugin.executable << " because: " << e.GetMsg()); plugin.started = false; hostQueue->WriteMessage(Str("error -1 " << plugin.name), "could not start process"); } } }