From 2897be497e80b14b78337ca0b7b87abb84744c5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Mon, 15 Apr 2024 14:27:19 +0200 Subject: [PATCH] Signal manager thread role (#4565) --- nano/lib/signal_manager.cpp | 6 ++++-- nano/lib/signal_manager.hpp | 4 ++-- nano/lib/thread_roles.cpp | 3 +++ nano/lib/thread_roles.hpp | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/nano/lib/signal_manager.cpp b/nano/lib/signal_manager.cpp index 365b37142..1ec36336f 100644 --- a/nano/lib/signal_manager.cpp +++ b/nano/lib/signal_manager.cpp @@ -1,4 +1,5 @@ #include +#include #include #include @@ -10,7 +11,8 @@ nano::signal_manager::signal_manager () : work (boost::asio::make_work_guard (ioc)) { - smthread = boost::thread ([&ioc = ioc] () { + thread = std::thread ([&ioc = ioc] () { + nano::thread_role::set (nano::thread_role::name::signal_manager); ioc.run (); }); } @@ -21,7 +23,7 @@ nano::signal_manager::~signal_manager () /// io_context::run() function will exit once all other work has completed. work.reset (); ioc.stop (); - smthread.join (); + thread.join (); } nano::signal_manager::signal_descriptor::signal_descriptor (std::shared_ptr sigset_a, signal_manager & sigman_a, std::function handler_func_a, bool repeat_a) : diff --git a/nano/lib/signal_manager.hpp b/nano/lib/signal_manager.hpp index 5012de52f..e87326f8f 100644 --- a/nano/lib/signal_manager.hpp +++ b/nano/lib/signal_manager.hpp @@ -4,11 +4,11 @@ #include #include -#include #include #include #include +#include #include namespace nano @@ -73,7 +73,7 @@ private: std::vector descriptor_list; /** thread to service the signal manager io context */ - boost::thread smthread; + std::thread thread; }; } diff --git a/nano/lib/thread_roles.cpp b/nano/lib/thread_roles.cpp index 52eb3bba1..724fd1386 100644 --- a/nano/lib/thread_roles.cpp +++ b/nano/lib/thread_roles.cpp @@ -125,6 +125,9 @@ std::string nano::thread_role::get_string (nano::thread_role::name role) case nano::thread_role::name::network_reachout: thread_role_name_string = "Net reachout"; break; + case nano::thread_role::name::signal_manager: + thread_role_name_string = "Signal manager"; + break; default: debug_assert (false && "nano::thread_role::get_string unhandled thread role"); } diff --git a/nano/lib/thread_roles.hpp b/nano/lib/thread_roles.hpp index c1dfce2d3..d3822f198 100644 --- a/nano/lib/thread_roles.hpp +++ b/nano/lib/thread_roles.hpp @@ -48,6 +48,7 @@ enum class name network_cleanup, network_keepalive, network_reachout, + signal_manager, }; std::string_view to_string (name);