File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -407,6 +407,23 @@ namespace SimpleWeb {
407407 if (!io_service) {
408408 io_service = std::make_shared<io_context>();
409409 internal_io_service = true ;
410+
411+ // Create signal_set responding to signals
412+ signals = std::make_shared<boost::asio::signal_set>(*io_service, SIGINT, SIGTERM);
413+ #ifdef SIGQUIT
414+ signals->add (SIGQUIT);
415+ #endif
416+ signals->async_wait (
417+ [ref (io_service), this ](const boost::system::error_code &ec, int signal_number) {
418+ if (!ec) {
419+ std::cout << " Signal number " << signal_number << std::endl;
420+ std::cout << " Gracefully stopping server" << std::endl;
421+ io_service->stop ();
422+ } else {
423+ std::cout << " Error " << ec.value () << " - " << ec.message ()
424+ << " - Signal number - " << signal_number << std::endl;
425+ }
426+ });
410427 }
411428
412429 if (!acceptor)
@@ -499,6 +516,7 @@ namespace SimpleWeb {
499516 std::mutex start_stop_mutex;
500517
501518 bool internal_io_service = false ;
519+ std::shared_ptr<boost::asio::signal_set> signals;
502520
503521 std::unique_ptr<asio::ip::tcp::acceptor> acceptor;
504522 std::vector<std::thread> threads;
Original file line number Diff line number Diff line change @@ -77,7 +77,6 @@ int main(int argc, char* argv[]) {
7777 server.config .port = port;
7878 sqlite::database db;
7979 db.init (input);
80- cout << " Starting local server on port " << server.config .port << endl;
8180
8281 server.resource [" ^/([0-9]+)/([0-9]+)/([0-9]+).pbf$" ][" GET" ] = [&db](shared_ptr<HttpServer::Response> response, shared_ptr<HttpServer::Request> request) {
8382 int32_t zoom = stoi (request->path_match [1 ]);
@@ -146,5 +145,6 @@ int main(int argc, char* argv[]) {
146145 }
147146 };
148147
148+ cout << " Starting local server on port " << server.config .port << endl;
149149 server.start ();
150150}
You can’t perform that action at this time.
0 commit comments