Drop redundant `CpuBoundWork` usage in `JsonRpcConnection::Disconnect()`

Although there is locking involved here, it shoudln't take too long for
the thread to actually acquire it, since there aren't that many threads
dealing with endpoint clients concurrently. It's just wasting pointless
time trying to obtain a CPU slot.
This commit is contained in:
Yonas Habteab 2024-02-08 11:15:53 +01:00
parent 01a6c4c1ce
commit e2793f1d88
1 changed files with 8 additions and 8 deletions

View File

@ -199,14 +199,14 @@ void JsonRpcConnection::Disconnect()
Log(LogWarning, "JsonRpcConnection") Log(LogWarning, "JsonRpcConnection")
<< "API client disconnected for identity '" << m_Identity << "'"; << "API client disconnected for identity '" << m_Identity << "'";
{ // We need to unregister the endpoint client as soon as possible not to confuse Icinga 2,
CpuBoundWork removeClient (yc); // given that Endpoint::GetConnected() is just performing a check that the endpoint's client
// cache is not empty, which could result in an already disconnected endpoint never trying to
if (m_Endpoint) { // reconnect again. See #7444.
m_Endpoint->RemoveClient(this); if (m_Endpoint) {
} else { m_Endpoint->RemoveClient(this);
ApiListener::GetInstance()->RemoveAnonymousClient(this); } else {
} ApiListener::GetInstance()->RemoveAnonymousClient(this);
} }
m_OutgoingMessagesQueued.Set(); m_OutgoingMessagesQueued.Set();