From 21533437b60eea8575272ac3c4a371b7f351548e Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Mon, 11 May 2020 21:29:25 +0200 Subject: Apply common 3e7e9b6 for TCPSendClient --- lib/Socket.cpp | 7 ++++++- lib/Socket.h | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/Socket.cpp b/lib/Socket.cpp index 159de7e..bc1b179 100644 --- a/lib/Socket.cpp +++ b/lib/Socket.cpp @@ -2,7 +2,7 @@ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2019 + Copyright (C) 2020 Matthias P. Braendli, matthias.braendli@mpb.li http://www.opendigitalradio.org @@ -932,6 +932,11 @@ void TCPSendClient::sendall(const std::vector& buffer) } m_queue.push(buffer); + + if (m_queue.size() > MAX_QUEUE_SIZE) { + vector discard; + m_queue.try_pop(discard); + } } void TCPSendClient::process() diff --git a/lib/Socket.h b/lib/Socket.h index 84def40..8c6f8a9 100644 --- a/lib/Socket.h +++ b/lib/Socket.h @@ -2,7 +2,7 @@ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Her Majesty the Queen in Right of Canada (Communications Research Center Canada) - Copyright (C) 2019 + Copyright (C) 2020 Matthias P. Braendli, matthias.braendli@mpb.li http://www.opendigitalradio.org @@ -311,7 +311,7 @@ class TCPSendClient { bool m_is_connected = false; TCPSocket m_sock; - static constexpr size_t MAX_QUEUE_SIZE = 1024; + static constexpr size_t MAX_QUEUE_SIZE = 512; ThreadsafeQueue > m_queue; std::atomic m_running; std::string m_exception_data; -- cgit v1.2.3