From 008c0f0b1e4d311cfb31093765e4e19d4ad7a34f Mon Sep 17 00:00:00 2001 From: Kalila L Date: Sun, 14 Mar 2021 22:35:56 -0400 Subject: [PATCH] Add iterator to improve max messages check performance. --- assignment-client/src/messages/MessagesMixer.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/assignment-client/src/messages/MessagesMixer.cpp b/assignment-client/src/messages/MessagesMixer.cpp index e23eb5ba66..eb004ddad7 100644 --- a/assignment-client/src/messages/MessagesMixer.cpp +++ b/assignment-client/src/messages/MessagesMixer.cpp @@ -49,13 +49,15 @@ void MessagesMixer::handleMessages(QSharedPointer receivedMessa MessagesClient::decodeMessagesPacket(receivedMessage, channel, isText, message, data, senderID); auto nodeList = DependencyManager::get(); - if (_allSubscribers.value(senderUUID) >= _maxMessagesPerSecond) { - // We will reject all messages that go over this limit for that second. - // FIXME: We will add logging options to offer analytics on this later. - return; - } - _allSubscribers[senderUUID] += 1; + auto itr = _allSubscribers.find(senderUUID); + if (itr == _allSubscribers.end()) { + _allSubscribers[senderUUID] = 1; + } else if (*itr >= _maxMessagesPerSecond) { // this syntax might be wrong I forget + return; + } else { + *itr += 1; + } nodeList->eachMatchingNode( [&](const SharedNodePointer& node)->bool {