Skip to content

Commit

Permalink
Differentiate normal and final generator thread roles (#4838)
Browse files Browse the repository at this point in the history
  • Loading branch information
pwojcikdev authored Jan 31, 2025
1 parent 5d2f862 commit f82f161
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 10 deletions.
6 changes: 3 additions & 3 deletions nano/lib/thread_roles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ std::string nano::thread_role::get_string (nano::thread_role::name role)
case nano::thread_role::name::voting:
thread_role_name_string = "Voting";
break;
case nano::thread_role::name::voting_final:
thread_role_name_string = "Voting final";
break;
case nano::thread_role::name::signature_checking:
thread_role_name_string = "Signature check";
break;
Expand Down Expand Up @@ -109,9 +112,6 @@ std::string nano::thread_role::get_string (nano::thread_role::name role)
case nano::thread_role::name::bounded_backlog_scan:
thread_role_name_string = "Bounded b scan";
break;
case nano::thread_role::name::vote_generator_queue:
thread_role_name_string = "Voting que";
break;
case nano::thread_role::name::bootstrap:
thread_role_name_string = "Bootstrap";
break;
Expand Down
2 changes: 1 addition & 1 deletion nano/lib/thread_roles.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ enum class name
bootstrap_initiator,
bootstrap_connections,
voting,
voting_final,
signature_checking,
rpc_request_processor,
rpc_process_container,
Expand All @@ -41,7 +42,6 @@ enum class name
backlog_scan,
bounded_backlog,
bounded_backlog_scan,
vote_generator_queue,
telemetry,
bootstrap,
bootstrap_database_scan,
Expand Down
6 changes: 3 additions & 3 deletions nano/node/vote_generator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ nano::vote_generator::vote_generator (nano::node_config const & config_a, nano::
stats (stats_a),
logger (logger_a),
is_final (is_final_a),
vote_generation_queue{ stats, nano::stat::type::vote_generator, nano::thread_role::name::vote_generator_queue, /* single threaded */ 1, /* max queue size */ 1024 * 32, /* max batch size */ 256 },
inproc_channel{ std::make_shared<nano::transport::inproc::channel> (node, node) }
inproc_channel{ std::make_shared<nano::transport::inproc::channel> (node, node) },
vote_generation_queue{ stats, nano::stat::type::vote_generator, is_final ? nano::thread_role::name::voting_final : nano::thread_role::name::voting, /* single threaded */ 1, /* max queue size */ 1024 * 32, /* max batch size */ 256 }
{
vote_generation_queue.process_batch = [this] (auto & batch) {
process_batch (batch);
Expand Down Expand Up @@ -77,7 +77,7 @@ void nano::vote_generator::start ()
{
debug_assert (!thread.joinable ());
thread = std::thread ([this] () {
nano::thread_role::set (nano::thread_role::name::voting);
nano::thread_role::set (is_final ? nano::thread_role::name::voting_final : nano::thread_role::name::voting);
run ();
});
vote_generation_queue.start ();
Expand Down
4 changes: 1 addition & 3 deletions nano/node/vote_generator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,6 @@ class vote_generator final
nano::stats & stats;
nano::logger & logger;

private:
nano::processing_queue<queue_entry_t> vote_generation_queue;

private:
const bool is_final;
mutable nano::mutex mutex;
Expand All @@ -84,5 +81,6 @@ class vote_generator final
std::atomic<bool> stopped{ false };
std::thread thread;
std::shared_ptr<nano::transport::channel> inproc_channel;
nano::processing_queue<queue_entry_t> vote_generation_queue;
};
}

0 comments on commit f82f161

Please sign in to comment.