diff --git a/src/controller/controller_connectors.cpp b/src/controller/controller_connectors.cpp index b7be032c..86d6efb3 100644 --- a/src/controller/controller_connectors.cpp +++ b/src/controller/controller_connectors.cpp @@ -24,11 +24,17 @@ namespace Controller { static std::map<std::string, pid_t> currentConnectors; ///<The currently running connectors. /// Updates the shared memory page with active connectors - void saveActiveConnectors(){ - IPC::sharedPage f("MstCnns", 4096, true, false); + void saveActiveConnectors(bool forceOverride){ + IPC::sharedPage f("MstCnns", 4096, forceOverride, false); if (!f.mapped){ - FAIL_MSG("Could not store connector data!"); - return; + if (!forceOverride){ + saveActiveConnectors(true); + return; + } + if (!f.mapped){ + FAIL_MSG("Could not store connector data!"); + return; + } } memset(f.mapped, 0, 32); Util::RelAccX A(f.mapped, false); diff --git a/src/controller/controller_connectors.h b/src/controller/controller_connectors.h index e48ff308..75e7da5c 100644 --- a/src/controller/controller_connectors.h +++ b/src/controller/controller_connectors.h @@ -9,7 +9,7 @@ namespace Controller { bool CheckProtocols(JSON::Value & p, const JSON::Value & capabilities); /// Updates the shared memory page with active connectors - void saveActiveConnectors(); + void saveActiveConnectors(bool forceOverride = false); /// Reads active connectors from the shared memory pages void loadActiveConnectors();