From 72f4a80f6c667e4010359be9a7d4d6fd224e8e8f Mon Sep 17 00:00:00 2001 From: Trent Houliston Date: Thu, 6 Mar 2025 14:08:15 +1100 Subject: [PATCH 1/3] Swap to using const data for NetworkController --- src/dsl/word/Network.hpp | 4 ++-- src/extension/NetworkController.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/dsl/word/Network.hpp b/src/dsl/word/Network.hpp index 113d5fda..c3e8f51e 100644 --- a/src/dsl/word/Network.hpp +++ b/src/dsl/word/Network.hpp @@ -91,8 +91,8 @@ namespace dsl { template static std::tuple, NetworkData> get(threading::ReactionTask& /*task*/) { - auto* data = store::ThreadStore>::value; - auto* source = store::ThreadStore::value; + auto* data = store::ThreadStore>::value; + auto* source = store::ThreadStore::value; if (data && source) { diff --git a/src/extension/NetworkController.cpp b/src/extension/NetworkController.cpp index 250a6f84..4a0edf81 100644 --- a/src/extension/NetworkController.cpp +++ b/src/extension/NetworkController.cpp @@ -62,10 +62,6 @@ namespace extension { // Move the payload in as we are stealing it std::vector p(std::move(payload)); - // Store in our thread local cache - dsl::store::ThreadStore>::value = &p; - dsl::store::ThreadStore::value = &src; - /* Mutex Scope */ { // Lock our reaction mutex const std::lock_guard lock(reaction_mutex); @@ -75,13 +71,17 @@ namespace extension { // Execute on our interested reactions for (auto it = rs.first; it != rs.second; ++it) { + // Store in our thread local cache + dsl::store::ThreadStore>::value = &p; + dsl::store::ThreadStore::value = &src; + powerplant.submit(it->second->get_task()); } - } - // Clear our cache - dsl::store::ThreadStore>::value = nullptr; - dsl::store::ThreadStore::value = nullptr; + // Clear our cache + dsl::store::ThreadStore>::value = nullptr; + dsl::store::ThreadStore::value = nullptr; + } }); // Set our join callback From 87bc1930e3a33a1303ecba065ac986faf6e74d84 Mon Sep 17 00:00:00 2001 From: Trent Houliston Date: Thu, 6 Mar 2025 14:09:24 +1100 Subject: [PATCH 2/3] missing const --- src/dsl/word/Network.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dsl/word/Network.hpp b/src/dsl/word/Network.hpp index c3e8f51e..0b9bf5b8 100644 --- a/src/dsl/word/Network.hpp +++ b/src/dsl/word/Network.hpp @@ -91,8 +91,8 @@ namespace dsl { template static std::tuple, NetworkData> get(threading::ReactionTask& /*task*/) { - auto* data = store::ThreadStore>::value; - auto* source = store::ThreadStore::value; + const auto* data = store::ThreadStore>::value; + const auto* source = store::ThreadStore::value; if (data && source) { From d5a15493b02413a95b6caa1f3683a9ebfcf88f63 Mon Sep 17 00:00:00 2001 From: Trent Houliston Date: Thu, 6 Mar 2025 14:13:54 +1100 Subject: [PATCH 3/3] . --- src/extension/NetworkController.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extension/NetworkController.cpp b/src/extension/NetworkController.cpp index 4a0edf81..56158ee5 100644 --- a/src/extension/NetworkController.cpp +++ b/src/extension/NetworkController.cpp @@ -57,10 +57,10 @@ namespace extension { const bool& reliable, std::vector&& payload) { // Construct our NetworkSource information - dsl::word::NetworkSource src{remote.name, remote.target, reliable}; + const dsl::word::NetworkSource src{remote.name, remote.target, reliable}; // Move the payload in as we are stealing it - std::vector p(std::move(payload)); + const std::vector p(std::move(payload)); /* Mutex Scope */ { // Lock our reaction mutex