* @brief Closes all sockets and cleans up resources */
| 147 | * @brief Closes all sockets and cleans up resources |
| 148 | */ |
| 149 | void API::ServerWorker::closeResources() |
| 150 | { |
| 151 | Q_ASSERT(QThread::currentThread() == thread()); |
| 152 | |
| 153 | for (auto* socket : std::as_const(m_sockets)) { |
| 154 | if (socket) { |
| 155 | socket->abort(); |
| 156 | socket->deleteLater(); |
| 157 | } |
| 158 | } |
| 159 | |
| 160 | m_sockets.clear(); |
| 161 | Q_ASSERT(m_sockets.isEmpty()); |
| 162 | |
| 163 | Q_EMIT clientCountChanged(0); |
| 164 | } |
| 165 | |
| 166 | /** |
| 167 | * @brief Adds a socket to the worker thread |