From b51883c2b6e9741f84c0c11853274aa0fb734dd3 Mon Sep 17 00:00:00 2001 From: fikumikudev Date: Sat, 22 Jan 2022 21:15:55 +0000 Subject: [PATCH] add `collect_container_info` to election scheduler and prioritization --- nano/node/election_scheduler.cpp | 10 ++++++++++ nano/node/election_scheduler.hpp | 3 +++ nano/node/node.cpp | 1 + nano/node/prioritization.cpp | 11 +++++++++++ nano/node/prioritization.hpp | 3 +++ 5 files changed, 28 insertions(+) diff --git a/nano/node/election_scheduler.cpp b/nano/node/election_scheduler.cpp index cd57368d..645be077 100644 --- a/nano/node/election_scheduler.cpp +++ b/nano/node/election_scheduler.cpp @@ -149,3 +149,13 @@ void nano::election_scheduler::run () } } } + +std::unique_ptr nano::collect_container_info (election_scheduler & election_scheduler, std::string const & name) +{ + nano::unique_lock lock{ election_scheduler.mutex }; + + auto composite = std::make_unique (name); + composite->add_component (std::make_unique (container_info{ "manual_queue", election_scheduler.manual_queue.size (), sizeof (decltype (election_scheduler.manual_queue)::value_type) })); + composite->add_component (collect_container_info (election_scheduler.priority, "priority")); + return composite; +} \ No newline at end of file diff --git a/nano/node/election_scheduler.hpp b/nano/node/election_scheduler.hpp index b10fee54..67e73a15 100644 --- a/nano/node/election_scheduler.hpp +++ b/nano/node/election_scheduler.hpp @@ -46,5 +46,8 @@ private: nano::condition_variable condition; mutable nano::mutex mutex; std::thread thread; + + friend std::unique_ptr collect_container_info (election_scheduler &, std::string const &); }; +std::unique_ptr collect_container_info (election_scheduler & election_scheduler, std::string const & name); } diff --git a/nano/node/node.cpp b/nano/node/node.cpp index 9eb0cd1c..d1354af8 100644 --- a/nano/node/node.cpp +++ b/nano/node/node.cpp @@ -555,6 +555,7 @@ std::unique_ptr nano::collect_container_info (no composite->add_component (collect_container_info (node.confirmation_height_processor, "confirmation_height_processor")); composite->add_component (collect_container_info (node.distributed_work, "distributed_work")); composite->add_component (collect_container_info (node.aggregator, "request_aggregator")); + composite->add_component (collect_container_info (node.scheduler, "election_scheduler")); return composite; } diff --git a/nano/node/prioritization.cpp b/nano/node/prioritization.cpp index 941204ef..e6377ad0 100644 --- a/nano/node/prioritization.cpp +++ b/nano/node/prioritization.cpp @@ -129,3 +129,14 @@ void nano::prioritization::dump () } std::cerr << "current: " << std::to_string (*current) << '\n'; } + +std::unique_ptr nano::collect_container_info (prioritization & prioritization, std::string const & name) +{ + auto composite = std::make_unique (name); + for (auto i = 0; i < prioritization.buckets.size (); ++i) + { + auto const & bucket = prioritization.buckets[i]; + composite->add_component (std::make_unique (container_info{ std::to_string (i), bucket.size (), 0 })); + } + return composite; +} \ No newline at end of file diff --git a/nano/node/prioritization.hpp b/nano/node/prioritization.hpp index 47a3ec87..05bf410f 100644 --- a/nano/node/prioritization.hpp +++ b/nano/node/prioritization.hpp @@ -40,5 +40,8 @@ public: bool empty () const; void dump (); uint64_t const maximum; + + friend std::unique_ptr collect_container_info (prioritization &, std::string const &); }; +std::unique_ptr collect_container_info (prioritization & prioritization, std::string const & name); }