Ticket #6657: test.cpp

File test.cpp, 872 bytes (added by Thomas Sanchez, 11 years ago)
Line 
1#include <signal.h>
2
3#include <boost/asio.hpp>
4#include <boost/bind.hpp>
5
6boost::asio::io_service::work* work;
7boost::asio::io_service service(1);
8boost::asio::signal_set signals(service);
9
10void handle_signal(int signal_number,
11 const boost::system::error_code& error)
12{
13 if (error)
14 {
15 std::cout << "Error happened: " << error.message() << std::endl;
16 }
17 else
18 {
19 std::cout << "Signal received: " << signal_number << std::endl;
20 }
21 delete work;
22 service.stop();
23}
24
25int main(int, char**)
26{
27 work = new boost::asio::io_service::work(service);
28 signals.add(SIGINT);
29 signals.add(SIGTERM);
30 signals.add(SIGQUIT);
31 signals.async_wait(
32 boost::bind(&handle_signal,
33 boost::asio::placeholders::signal_number,
34 boost::asio::placeholders::error));
35
36 service.run();
37 std::cout << "service is not running" << std::endl;;
38}