From f0dcc0c2443a0de953ba13327106e8d691da6c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Sun, 23 Apr 2017 12:26:21 +0200 Subject: [PATCH] Fix not joint thread in stratum --- libstratum/EthStratumClient.cpp | 10 +++++----- libstratum/EthStratumClient.h | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/libstratum/EthStratumClient.cpp b/libstratum/EthStratumClient.cpp index cf4865658..31ff11f62 100644 --- a/libstratum/EthStratumClient.cpp +++ b/libstratum/EthStratumClient.cpp @@ -54,7 +54,8 @@ EthStratumClient::EthStratumClient(GenericFarm * f, MinerType EthStratumClient::~EthStratumClient() { - + m_io_service.stop(); + m_serviceThread.join(); } void EthStratumClient::setFailover(string const & host, string const & port) @@ -81,7 +82,7 @@ void EthStratumClient::connect() cnote << "Connecting to stratum server " << p_active->host + ":" + p_active->port; - std::thread t(boost::bind(&boost::asio::io_service::run, &m_io_service)); + m_serviceThread = std::thread{boost::bind(&boost::asio::io_service::run, &m_io_service)}; } #define BOOST_ASIO_ENABLE_CANCELIO @@ -145,8 +146,8 @@ void EthStratumClient::resolve_handler(const boost::system::error_code& ec, tcp: if (!ec) { async_connect(m_socket, i, boost::bind(&EthStratumClient::connect_handler, - this, boost::asio::placeholders::error, - boost::asio::placeholders::iterator)); + this, boost::asio::placeholders::error, + boost::asio::placeholders::iterator)); } else { @@ -265,7 +266,6 @@ void EthStratumClient::readResponse(const boost::system::error_code& ec, std::si if (reader.parse(response.c_str(), responseObject)) { processReponse(responseObject); - m_response = response; } else { diff --git a/libstratum/EthStratumClient.h b/libstratum/EthStratumClient.h index 6feb1ad67..faf2a1139 100644 --- a/libstratum/EthStratumClient.h +++ b/libstratum/EthStratumClient.h @@ -67,7 +67,6 @@ private: boost::mutex x_pending; int m_pending; - string m_response; GenericFarm * p_farm; boost::mutex x_current; @@ -78,8 +77,8 @@ private: string m_job; string m_previousJob; - EthashAux::FullType m_dag; + std::thread m_serviceThread; ///< The IO service thread. boost::asio::io_service m_io_service; tcp::socket m_socket;