From f3af0dad42422b626cd009d818acda704b2ff4db Mon Sep 17 00:00:00 2001 From: Runming Wu Date: Thu, 2 May 2024 11:40:43 -0700 Subject: [PATCH] Address review comments Change-Id: Ib028780e726a9480e6049514bc776ccf27b84496 --- orchagent/response_publisher.cpp | 42 ++++++++------------------------ orchagent/response_publisher.h | 8 +++++- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/orchagent/response_publisher.cpp b/orchagent/response_publisher.cpp index 5adc500fe80..f630ddf5899 100644 --- a/orchagent/response_publisher.cpp +++ b/orchagent/response_publisher.cpp @@ -70,12 +70,12 @@ ResponsePublisher::ResponsePublisher(const std::string &dbName, bool buffered, b if (m_buffered) { m_ntf_pipe = std::make_unique(m_db.get()); - m_pipe = std::make_unique(m_db.get()); + m_db_pipe = std::make_unique(m_db.get()); } else { m_ntf_pipe = std::make_unique(m_db.get(), 1); - m_pipe = std::make_unique(m_db.get(), 1); + m_db_pipe = std::make_unique(m_db.get(), 1); } if (db_write_thread) { @@ -89,15 +89,8 @@ ResponsePublisher::~ResponsePublisher() { { std::lock_guard lock(m_lock); - m_queue.push(entry{ - .table = "", - .key = "", - .values = std::vector{}, - .op = "", - .replace = false, - .flush = false, - .shutdown = true, - }); + m_queue.emplace(/*table=*/"", /*key=*/"", /*values =*/std::vector{}, /*op=*/"", + /*replace=*/false, /*flush=*/false, /*shutdown=*/true); } m_signal.notify_one(); m_update_thread->join(); @@ -151,15 +144,7 @@ void ResponsePublisher::writeToDB(const std::string &table, const std::string &k { { std::lock_guard lock(m_lock); - m_queue.push(entry{ - .table = table, - .key = key, - .values = values, - .op = op, - .replace = replace, - .flush = false, - .shutdown = false, - }); + m_queue.emplace(table, key, values, op, replace, /*flush=*/false, /*shutdown=*/false); } m_signal.notify_one(); } @@ -174,7 +159,7 @@ void ResponsePublisher::writeToDBInternal(const std::string &table, const std::s const std::vector &values, const std::string &op, bool replace) { - swss::Table applStateTable{m_pipe.get(), table, m_buffered}; + swss::Table applStateTable{m_db_pipe.get(), table, m_buffered}; auto attrs = values; if (op == SET_COMMAND) @@ -225,21 +210,14 @@ void ResponsePublisher::flush() { { std::lock_guard lock(m_lock); - m_queue.push(entry{ - .table = "", - .key = "", - .values = std::vector{}, - .op = "", - .replace = false, - .flush = true, - .shutdown = false, - }); + m_queue.emplace(/*table=*/"", /*key=*/"", /*values =*/std::vector{}, /*op=*/"", + /*replace=*/false, /*flush=*/true, /*shutdown=*/false); } m_signal.notify_one(); } else { - m_pipe->flush(); + m_db_pipe->flush(); } } @@ -269,7 +247,7 @@ void ResponsePublisher::dbUpdateThread() } if (e.flush) { - m_pipe->flush(); + m_db_pipe->flush(); } else { diff --git a/orchagent/response_publisher.h b/orchagent/response_publisher.h index d583fa60495..abfdaa07979 100644 --- a/orchagent/response_publisher.h +++ b/orchagent/response_publisher.h @@ -70,6 +70,12 @@ class ResponsePublisher : public ResponsePublisherInterface bool replace; bool flush; bool shutdown; + + entry(const std::string &table, const std::string &key, const std::vector &values, + const std::string &op, bool replace, bool flush, bool shutdown) + : table(table), key(key), values(values), op(op), replace(replace), flush(flush), shutdown(shutdown) + { + } }; void dbUpdateThread(); @@ -78,7 +84,7 @@ class ResponsePublisher : public ResponsePublisherInterface std::unique_ptr m_db; std::unique_ptr m_ntf_pipe; - std::unique_ptr m_pipe; + std::unique_ptr m_db_pipe; bool m_buffered{false}; // Thread to write to DB.