File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11#include < memory>
2+ #include < signal.h>
23
34#include < boost/json/src.hpp>
45
56#include " server/server.h"
67
8+ std::shared_ptr<server::server> database_server;
9+
10+ void handle_signal (int signum)
11+ {
12+ database_server->close ();
13+
14+ exit (signum);
15+ }
16+
717int main (void )
818{
9- std::make_shared<server::server>(8080 )->serve ();
19+ database_server = std::make_shared<server::server>(8080 );
20+
21+ signal (SIGINT, handle_signal);
22+ signal (SIGTERM, handle_signal);
23+
24+ database_server->serve ();
1025
1126 return EXIT_SUCCESS;
1227}
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ server::server::server(
1515 acceptor(boost::asio::make_strand(io_context)),
1616 repository(repository::rocksdb_repository()),
1717 router(router::router(repository))
18- {
18+ {
1919 boost::beast::error_code error;
2020 boost::asio::ip::tcp::endpoint endpoint { boost::asio::ip::address_v4::any (), port };
2121
@@ -81,3 +81,8 @@ void server::server::accept()
8181 boost::asio::make_strand (io_context),
8282 boost::beast::bind_front_handler (&server::on_accept, shared_from_this ()));
8383}
84+
85+ void server::server::close ()
86+ {
87+ acceptor.close ();
88+ }
Original file line number Diff line number Diff line change @@ -37,6 +37,8 @@ namespace server
3737
3838 boost::asio::ip::port_type port () const ;
3939
40+ void close ();
41+
4042 private:
4143 void accept ();
4244 };
You can’t perform that action at this time.
0 commit comments