::stop now closes connections even though internal io_service is used

This commit is contained in:
eidheim 2017-07-12 10:03:52 +02:00
commit 3541dd7879
2 changed files with 8 additions and 9 deletions

View file

@ -360,10 +360,8 @@ namespace SimpleWeb {
void stop() { void stop() {
std::unique_lock<std::mutex> lock(connections_mutex); std::unique_lock<std::mutex> lock(connections_mutex);
for(auto it = connections.begin(); it != connections.end();) { for(auto it = connections.begin(); it != connections.end();) {
if(!internal_io_service) { (*it)->attempt_reconnect = false;
(*it)->attempt_reconnect = false; (*it)->close();
(*it)->close();
}
it = connections.erase(it); it = connections.erase(it);
} }
} }

View file

@ -419,15 +419,16 @@ namespace SimpleWeb {
void stop() { void stop() {
if(acceptor) { if(acceptor) {
acceptor->close(); acceptor->close();
if(internal_io_service)
io_service->stop();
std::unique_lock<std::mutex> lock(*connections_mutex); {
if(!internal_io_service) { std::unique_lock<std::mutex> lock(*connections_mutex);
for(auto &connection : *connections) for(auto &connection : *connections)
connection->close(); connection->close();
connections->clear();
} }
connections->clear();
if(internal_io_service)
io_service->stop();
} }
} }