| 2164 | |
| 2165 | protected: |
| 2166 | void finalize() override |
| 2167 | { |
| 2168 | // If we started the accept loop then discard it and any clients |
| 2169 | // we are already serving. |
| 2170 | accepting.discard(); |
| 2171 | |
| 2172 | // NOTE: we know that no more sockets will be accepted because |
| 2173 | // the accept loop is on `self()` and we're in `finalize()`. |
| 2174 | foreachvalue (Client& client, clients) { |
| 2175 | client.serving.discard(); |
| 2176 | } |
| 2177 | |
| 2178 | clients.clear(); |
| 2179 | } |
| 2180 | |
| 2181 | private: |
| 2182 | network::Socket socket; |