aboutsummaryrefslogtreecommitdiffstats
path: root/include/crow/http_server.h
diff options
context:
space:
mode:
authorJaeseung Ha <ipknhama@gmail.com>2017-09-17 19:17:54 +0900
committerGitHub <noreply@github.com>2017-09-17 19:17:54 +0900
commitd8c4a671760fda8e83279b9383108f0951367fb6 (patch)
tree0ad063878c09eec987d1d8054b66d11fd629ce30 /include/crow/http_server.h
parent26c4d5ddef6920043ae40a9d80ca31f3b820bad5 (diff)
parent414809c742521926ca08fbd355b92f3ae877064f (diff)
downloadcrow-d8c4a671760fda8e83279b9383108f0951367fb6.tar.gz
crow-d8c4a671760fda8e83279b9383108f0951367fb6.zip
Merge branch 'master' into master
Diffstat (limited to 'include/crow/http_server.h')
-rw-r--r--include/crow/http_server.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/include/crow/http_server.h b/include/crow/http_server.h
index d5abb11..787fdb8 100644
--- a/include/crow/http_server.h
+++ b/include/crow/http_server.h
@@ -121,12 +121,19 @@ namespace crow
timer.async_wait(handler);
init_count ++;
- try
+ while(1)
{
- io_service_pool_[i]->run();
- } catch(std::exception& e)
- {
- CROW_LOG_ERROR << "Worker Crash: An uncaught exception occurred: " << e.what();
+ try
+ {
+ if (io_service_pool_[i]->run() == 0)
+ {
+ // when io_service.run returns 0, there are no more works to do.
+ break;
+ }
+ } catch(std::exception& e)
+ {
+ CROW_LOG_ERROR << "Worker Crash: An uncaught exception occurred: " << e.what();
+ }
}
}));
@@ -141,7 +148,8 @@ namespace crow
});
}
- CROW_LOG_INFO << server_name_ << " server is running, local port " << port_;
+ CROW_LOG_INFO << server_name_ << " server is running on port " << port_
+ << " using " << concurrency_ << " threads";
signals_.async_wait(
[&](const boost::system::error_code& /*error*/, int /*signal_number*/){
@@ -193,6 +201,10 @@ namespace crow
p->start();
});
}
+ else
+ {
+ delete p;
+ }
do_accept();
});
}