diff --git a/rai/core_test/node.cpp b/rai/core_test/node.cpp index 28b90f75a..087ed7b1b 100644 --- a/rai/core_test/node.cpp +++ b/rai/core_test/node.cpp @@ -1296,3 +1296,22 @@ TEST (node, no_voting) } ASSERT_EQ (0, node1.network.confirm_ack_count); } + +TEST (node, start_observer) +{ + rai::node_init init; + auto service (boost::make_shared ()); + rai::alarm alarm (*service); + auto path (rai::unique_path ()); + rai::logging logging (path); + rai::work_pool work (std::numeric_limits ::max (), nullptr); + auto node (std::make_shared (init, *service, 0, path, alarm, logging, work)); + auto started (false); + node->observers.started.add([&started] () + { + started = true; + }); + node->start (); + ASSERT_TRUE (started); + node->stop (); +} diff --git a/rai/node/node.cpp b/rai/node/node.cpp index 573df6628..f87ccfd2d 100755 --- a/rai/node/node.cpp +++ b/rai/node/node.cpp @@ -1552,6 +1552,7 @@ void rai::node::start () active.announce_votes (); port_mapping.start (); add_initial_peers (); + observers.started (); } void rai::node::stop () diff --git a/rai/node/node.hpp b/rai/node/node.hpp index 61fd01465..1946f6fcd 100644 --- a/rai/node/node.hpp +++ b/rai/node/node.hpp @@ -378,6 +378,7 @@ public: rai::observer_set vote; rai::observer_set endpoint; rai::observer_set <> disconnect; + rai::observer_set <> started; }; class vote_processor {