From a29f9291627932b297209a799f1fc88e88e08a8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Sun, 12 May 2024 12:53:17 +0200 Subject: [PATCH] Priority scheduler config --- nano/node/nodeconfig.hpp | 2 ++ nano/node/scheduler/priority.cpp | 6 ++++++ nano/node/scheduler/priority.hpp | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/nano/node/nodeconfig.hpp b/nano/node/nodeconfig.hpp index 75d1510a..1b9fd403 100644 --- a/nano/node/nodeconfig.hpp +++ b/nano/node/nodeconfig.hpp @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +67,7 @@ public: std::optional peering_port{}; nano::scheduler::optimistic_config optimistic_scheduler; nano::scheduler::hinted_config hinted_scheduler; + nano::scheduler::priority_config priority_scheduler; std::vector> work_peers; std::vector> secondary_work_peers{ { "127.0.0.1", 8076 } }; /* Default of nano-pow-server */ std::vector preconfigured_peers; diff --git a/nano/node/scheduler/priority.cpp b/nano/node/scheduler/priority.cpp index d16d33fe..e26d4cc9 100644 --- a/nano/node/scheduler/priority.cpp +++ b/nano/node/scheduler/priority.cpp @@ -9,6 +9,7 @@ #include nano::scheduler::priority::priority (nano::node & node_a, nano::stats & stats_a) : + config{ node_a.config.priority_scheduler }, node{ node_a }, stats{ stats_a }, buckets{ std::make_unique () } @@ -25,6 +26,11 @@ void nano::scheduler::priority::start () { debug_assert (!thread.joinable ()); + if (!config.enabled) + { + return; + } + thread = std::thread{ [this] () { nano::thread_role::set (nano::thread_role::name::scheduler_priority); run (); diff --git a/nano/node/scheduler/priority.hpp b/nano/node/scheduler/priority.hpp index 8de27eaa..cf60cee1 100644 --- a/nano/node/scheduler/priority.hpp +++ b/nano/node/scheduler/priority.hpp @@ -24,6 +24,15 @@ class transaction; namespace nano::scheduler { +class priority_config +{ +public: + // TODO: Serialization & deserialization + +public: + bool enabled{ true }; +}; + class buckets; class priority final { @@ -46,6 +55,7 @@ public: std::unique_ptr collect_container_info (std::string const & name); private: // Dependencies + priority_config const & config; nano::node & node; nano::stats & stats;