From 20ad514d347a7958711004f6617bd183d2a713c4 Mon Sep 17 00:00:00 2001 From: clemahieu Date: Wed, 30 Mar 2016 18:28:12 -0500 Subject: [PATCH] Swapping atomic_flag for atomic_bool which can be queried. --- rai/node/bootstrap.cpp | 12 ++++-------- rai/node/bootstrap.hpp | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/rai/node/bootstrap.cpp b/rai/node/bootstrap.cpp index 02c2ddc5..babc62b2 100644 --- a/rai/node/bootstrap.cpp +++ b/rai/node/bootstrap.cpp @@ -185,11 +185,7 @@ void rai::bootstrap_client::run (boost::asio::ip::tcp::endpoint const & endpoint { if (!ec) { - { - std::lock_guard lock (this_l->node->bootstrap_initiator.mutex); - this_l->attempt->peers.clear (); - } - if (!this_l->attempt->connected.test_and_set ()) + if (!this_l->attempt->connected.exchange (true)) { this_l->connect_action (); } @@ -774,9 +770,9 @@ void rai::bulk_push_client::push_block (rai::block const & block_a) rai::bootstrap_attempt::bootstrap_attempt (std::shared_ptr node_a, std::vector const & peers_a) : node (node_a), -peers (peers_a) +peers (peers_a), +connected (false) { - connected.clear (); } rai::bootstrap_attempt::~bootstrap_attempt () @@ -788,7 +784,7 @@ rai::bootstrap_attempt::~bootstrap_attempt () void rai::bootstrap_attempt::attempt () { - if (!peers.empty ()) + if (!peers.empty () && !connected) { rai::endpoint endpoint (peers.back ()); peers.pop_back (); diff --git a/rai/node/bootstrap.hpp b/rai/node/bootstrap.hpp index 08b9c599..f094877b 100644 --- a/rai/node/bootstrap.hpp +++ b/rai/node/bootstrap.hpp @@ -52,7 +52,7 @@ public: void attempt (); std::shared_ptr node; std::vector peers; - std::atomic_flag connected; + std::atomic_bool connected; }; class bootstrap_client : public std::enable_shared_from_this {