System io guard

This commit is contained in:
Piotr Wójcik 2024-03-22 18:34:43 +01:00
commit a974d2ac50
2 changed files with 13 additions and 10 deletions

View file

@ -32,7 +32,8 @@ std::string nano::error_system_messages::message (int ev) const
*/
nano::test::system::system () :
io_ctx{ std::make_shared<boost::asio::io_context> () }
io_ctx{ std::make_shared<boost::asio::io_context> () },
io_guard{ boost::asio::make_work_guard (*io_ctx) }
{
auto scale_str = std::getenv ("DEADLINE_SCALE_FACTOR");
if (scale_str)
@ -70,6 +71,16 @@ nano::test::system::~system ()
#endif
}
void nano::test::system::stop ()
{
io_guard.reset ();
for (auto & node : nodes)
{
node->stop ();
}
work.stop ();
}
nano::node & nano::test::system::node (std::size_t index) const
{
debug_assert (index < nodes.size ());
@ -574,15 +585,6 @@ void nano::test::system::generate_mass_activity (uint32_t count_a, nano::node &
}
}
void nano::test::system::stop ()
{
for (auto i : nodes)
{
i->stop ();
}
work.stop ();
}
nano::node_config nano::test::system::default_config ()
{
nano::node_config config{ get_available_port () };

View file

@ -75,6 +75,7 @@ namespace test
public:
std::shared_ptr<boost::asio::io_context> io_ctx;
boost::asio::executor_work_guard<boost::asio::io_context::executor_type> io_guard;
std::vector<std::shared_ptr<nano::node>> nodes;
nano::stats stats;
nano::logger logger{ "tests" };