summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/doc/overview/signals.qbk
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/doc/overview/signals.qbk')
-rw-r--r--3rdparty/asio/src/doc/overview/signals.qbk44
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]