From: Kefu Chai Date: Tue, 2 Mar 2021 08:18:20 +0000 (+0800) Subject: crimson/mon: pending_messages should not be empty if active_conn X-Git-Tag: v17.1.0~2790^2~8 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=aea159c626b46b97ab13431c70f7ac399f7069d8;p=ceph.git crimson/mon: pending_messages should not be empty if active_conn we always send all pending_messages, and clear it when establishing a connection to mon, so there is no need to check for it when calling `send_message()`. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/mon/MonClient.cc b/src/crimson/mon/MonClient.cc index 3baf5f9fbf158..f623ac2cac94e 100644 --- a/src/crimson/mon/MonClient.cc +++ b/src/crimson/mon/MonClient.cc @@ -1011,13 +1011,12 @@ Client::run_command(const std::vector& cmd, seastar::future<> Client::send_message(MessageRef m) { if (active_con) { - if (!pending_messages.empty()) { - send_pendings(); - } + assert(pending_messages.empty()); return active_con->get_conn()->send(m); + } else { + auto& delayed = pending_messages.emplace_back(m); + return delayed.pr.get_future(); } - auto& delayed = pending_messages.emplace_back(m); - return delayed.pr.get_future(); } void Client::send_pendings()