asio C++ library


Signal Handling

Asio supports signal handling using a class called signal_set. Programs may add one or more signals to the set, and then perform an async_wait() operation. The specified handler will be called when one of the signals occurs. The same signal number may be registered with multiple signal_set objects, however the signal number must be used only with Asio.

void handler(
    const asio::error_code& error,
    int signal_number)
  if (!error)
    // A signal occurred.


// Construct a signal set registered for process termination.
asio::signal_set signals(io_service, SIGINT, SIGTERM);

// Start an asynchronous wait for one of the signals to occur.

Signal handling also works on Windows, as the Microsoft Visual C++ runtime library maps console events like Ctrl+C to the equivalent signal.

See Also

signal_set, HTTP server example (C++03), HTTP server example (C++11).