From 1e9d6492710195cb942ac36c14c78433120ade8a Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Mon, 5 Aug 2019 17:22:07 +1100 Subject: [PATCH] Wesnothd Connection: clarified data queues' nature by wrapping them in std::queue I kept the underlying container an std::list like before. --- src/wesnothd_connection.cpp | 8 ++++---- src/wesnothd_connection.hpp | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/wesnothd_connection.cpp b/src/wesnothd_connection.cpp index 33ea0fab40c8..bed8d37cddde 100644 --- a/src/wesnothd_connection.cpp +++ b/src/wesnothd_connection.cpp @@ -182,7 +182,7 @@ void wesnothd_connection::send_data(const configr_of& request) // TODO: should I capture a shared_ptr for this? io_service_.post([this, buf_ptr]() { DBG_NW << "In wesnothd_connection::send_data::lambda\n"; - send_queue_.push_back(buf_ptr); + send_queue_.push(buf_ptr); if(send_queue_.size() == 1) { send(); @@ -248,7 +248,7 @@ void wesnothd_connection::handle_write(const boost::system::error_code& ec, std: MPTEST_LOG; DBG_NW << "Written " << bytes_transferred << " bytes.\n"; - send_queue_.pop_front(); + send_queue_.pop(); if(ec) { { @@ -332,7 +332,7 @@ void wesnothd_connection::handle_read(const boost::system::error_code& ec, std:: { std::lock_guard lock(recv_queue_mutex_); - recv_queue_.emplace_back(std::move(data)); + recv_queue_.emplace(std::move(data)); } recv(); @@ -395,7 +395,7 @@ bool wesnothd_connection::receive_data(config& result) std::lock_guard lock(recv_queue_mutex_); if(!recv_queue_.empty()) { result.swap(recv_queue_.front()); - recv_queue_.pop_front(); + recv_queue_.pop(); return true; } } diff --git a/src/wesnothd_connection.hpp b/src/wesnothd_connection.hpp index f73b4bee8dbb..dcdddcc2b602 100644 --- a/src/wesnothd_connection.hpp +++ b/src/wesnothd_connection.hpp @@ -40,6 +40,7 @@ #include #include #include +#include class config; enum class loading_stage; @@ -159,8 +160,11 @@ class wesnothd_connection void send(); void recv(); - std::list> send_queue_; - std::list recv_queue_; + template + using data_queue = std::queue>; + + data_queue> send_queue_; + data_queue recv_queue_; std::mutex recv_queue_mutex_;