Wesnothd Connection: clarified data queues' nature by wrapping them in std::queue
I kept the underlying container an std::list like before.
This commit is contained in:
parent
2051e7fc5b
commit
1e9d649271
2 changed files with 10 additions and 6 deletions
|
@ -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<std::mutex> 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<std::mutex> lock(recv_queue_mutex_);
|
||||
if(!recv_queue_.empty()) {
|
||||
result.swap(recv_queue_.front());
|
||||
recv_queue_.pop_front();
|
||||
recv_queue_.pop();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include <list>
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
#include <queue>
|
||||
|
||||
class config;
|
||||
enum class loading_stage;
|
||||
|
@ -159,8 +160,11 @@ private:
|
|||
void send();
|
||||
void recv();
|
||||
|
||||
std::list<std::shared_ptr<boost::asio::streambuf>> send_queue_;
|
||||
std::list<config> recv_queue_;
|
||||
template<typename T>
|
||||
using data_queue = std::queue<T, std::list<T>>;
|
||||
|
||||
data_queue<std::shared_ptr<boost::asio::streambuf>> send_queue_;
|
||||
data_queue<config> recv_queue_;
|
||||
|
||||
std::mutex recv_queue_mutex_;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue