From cbba54f322be4c0c829c8af5aed9358aa37d80c0 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 6 Nov 2018 17:17:49 +0100 Subject: [PATCH 1/3] Removed unnecessary DLOGS --- src/escd/network/peerclientmanager.cpp | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/escd/network/peerclientmanager.cpp b/src/escd/network/peerclientmanager.cpp index 03d433d3..e86f39f7 100644 --- a/src/escd/network/peerclientmanager.cpp +++ b/src/escd/network/peerclientmanager.cpp @@ -124,8 +124,6 @@ void PeerConnectManager::addActivePeer(uint16_t svid, boost::shared_ptr pe void PeerConnectManager::addActivePeerImpl(uint16_t svid, boost::shared_ptr peer) { - DLOG("ENTERED addActivePeerImpl, peer svid:%u\n", svid); - try{ boost::upgrade_lock< boost::shared_mutex > lock(m_peerMx); DLOG("Add active peer svid: %ud\n", svid); @@ -139,8 +137,6 @@ void PeerConnectManager::addActivePeerImpl(uint16_t svid, boost::shared_ptrdata != nullptr) { DLOG("msg type:%u\n", msg->data[0]); } @@ -446,7 +441,6 @@ void PeerConnectManager::deliverImpl(message_ptr msg, uint16_t svid) } msg->sent_erase(svid); - DLOG("LEFT deliverImpl 2\n"); } void PeerConnectManager::deliverToAll(message_ptr msg) @@ -456,7 +450,6 @@ void PeerConnectManager::deliverToAll(message_ptr msg) void PeerConnectManager::deliverToAllImpl(message_ptr msg) { - DLOG("ENTERED deliverToAllImpl\n"); if (msg->data != nullptr) { DLOG("msg type:%u\n", msg->data[0]); } @@ -465,8 +458,6 @@ void PeerConnectManager::deliverToAllImpl(message_ptr msg) for(auto& peer: m_activePeers){ peer.second->deliver(msg); } - - DLOG("LEFT deliverToAllImpl\n"); } void PeerConnectManager::update(message_ptr msg, uint16_t svid) @@ -476,7 +467,6 @@ void PeerConnectManager::update(message_ptr msg, uint16_t svid) void PeerConnectManager::updateImpl(message_ptr msg, uint16_t svid) { - DLOG("ENTERED updateImpl, peer svid:%u\n", svid); if (msg->data != nullptr) { DLOG("msg type:%u\n", msg->data[0]); } @@ -486,8 +476,6 @@ void PeerConnectManager::updateImpl(message_ptr msg, uint16_t svid) if(svidPeer != m_activePeers.end()){ svidPeer->second->update(msg); } - - DLOG("LEFT updateImpl\n"); } void PeerConnectManager::updateAll(message_ptr msg) @@ -497,18 +485,14 @@ void PeerConnectManager::updateAll(message_ptr msg) void PeerConnectManager::updateAllImpl(message_ptr msg) { - DLOG("ENTERED updateAllImpl\n"); if (msg->data != nullptr) { DLOG("msg type:%u\n", msg->data[0]); } boost::shared_lock< boost::shared_mutex > lock(m_peerMx); - for(auto& peer: m_activePeers) - { + for(auto& peer: m_activePeers) { peer.second->update(msg); } - - DLOG("LEFT updateAllImpl\n"); } void PeerConnectManager::getReadyPeers(std::set& ready) From b8985c98d00bbc73365d4764b5e63d31977aa448 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 6 Nov 2018 17:55:31 +0100 Subject: [PATCH 2/3] Added breaking of run_one loop when io_service is stopped --- src/escd/network/peerclient.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/escd/network/peerclient.cpp b/src/escd/network/peerclient.cpp index e8b48798..3742fa42 100644 --- a/src/escd/network/peerclient.cpp +++ b/src/escd/network/peerclient.cpp @@ -76,7 +76,12 @@ std::size_t PeerClient::writeSync(void* data , uint32_t len, int timeout) boost::asio::async_write(m_socket, boost::asio::buffer(data, len), boost::bind(&PeerClient::operationDone, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); do{ - m_socket.get_io_service().run_one(); + auto& ioService = m_socket.get_io_service(); + if (ioService.stopped()) { + ELOG("Stopping writeSync task because io_service is stopped\n"); + break; + } + ioService.run_one(); } while (m_ec == boost::asio::error::would_block); @@ -103,7 +108,12 @@ std::size_t PeerClient::readSync(void* data , uint32_t len, int timeout) boost::asio::async_read(m_socket, boost::asio::buffer(data, len), boost::bind(&PeerClient::operationDone, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); do{ - m_socket.get_io_service().run_one(); + auto& ioService = m_socket.get_io_service(); + if (ioService.stopped()) { + ELOG("Stopping readSync task because io_service is stopped\n"); + break; + } + ioService.run_one(); } while (m_ec == boost::asio::error::would_block); From 48b00472a996022a973f1d4505157f7db44895b7 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Wed, 7 Nov 2018 11:25:33 +0100 Subject: [PATCH 3/3] Added setting of error code to timed_out when io_service stoppped --- src/escd/network/peerclient.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/escd/network/peerclient.cpp b/src/escd/network/peerclient.cpp index 3742fa42..05fb62b4 100644 --- a/src/escd/network/peerclient.cpp +++ b/src/escd/network/peerclient.cpp @@ -79,6 +79,7 @@ std::size_t PeerClient::writeSync(void* data , uint32_t len, int timeout) auto& ioService = m_socket.get_io_service(); if (ioService.stopped()) { ELOG("Stopping writeSync task because io_service is stopped\n"); + m_ec = boost::asio::error::timed_out; break; } ioService.run_one(); @@ -111,6 +112,7 @@ std::size_t PeerClient::readSync(void* data , uint32_t len, int timeout) auto& ioService = m_socket.get_io_service(); if (ioService.stopped()) { ELOG("Stopping readSync task because io_service is stopped\n"); + m_ec = boost::asio::error::timed_out; break; } ioService.run_one();