Use QSet for tracking server connections

We don't need to maintain order between connections so QSet would be more suitable.
This commit is contained in:
Chocobo1
2019-04-15 21:22:11 +08:00
parent 4e5a85dda5
commit df6df20969
2 changed files with 5 additions and 4 deletions

View File

@@ -97,19 +97,19 @@ void Server::incomingConnection(qintptr socketDescriptor)
#endif
Connection *c = new Connection(serverSocket, m_requestHandler, this);
m_connections.append(c);
m_connections.insert(c);
connect(serverSocket, &QAbstractSocket::disconnected, this, [c, this]() { removeConnection(c); });
}
void Server::removeConnection(Connection *connection)
{
m_connections.removeOne(connection);
m_connections.remove(connection);
connection->deleteLater();
}
void Server::dropTimedOutConnection()
{
QMutableListIterator<Connection *> i(m_connections);
QMutableSetIterator<Connection *> i(m_connections);
while (i.hasNext()) {
Connection *connection = i.next();
if (connection->hasExpired(KEEP_ALIVE_DURATION)) {