diff options
Diffstat (limited to '3rdparty/asio/src/doc/overview/signals.qbk')
-rw-r--r-- | 3rdparty/asio/src/doc/overview/signals.qbk | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/3rdparty/asio/src/doc/overview/signals.qbk b/3rdparty/asio/src/doc/overview/signals.qbk new file mode 100644 index 00000000000..d626ead861c --- /dev/null +++ b/3rdparty/asio/src/doc/overview/signals.qbk @@ -0,0 +1,44 @@ +[/ + / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) + / + / Distributed under the Boost Software License, Version 1.0. (See accompanying + / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + /] + +[section:signals Signal Handling] + +Asio supports signal handling using a class called [link +asio.reference.signal_set 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 [link asio.reference.signal_set 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_context, SIGINT, SIGTERM); + + // Start an asynchronous wait for one of the signals to occur. + signals.async_wait(handler); + +Signal handling also works on Windows, as the Microsoft Visual C++ runtime +library maps console events like Ctrl+C to the equivalent signal. + +[heading See Also] + +[link asio.reference.signal_set signal_set], +[link asio.examples.cpp03_examples.http_server HTTP server example (C++03)], +[link asio.examples.cpp11_examples.http_server HTTP server example (C++11)]. + +[endsect] |