Imported Upstream version 1.57.0
[platform/upstream/boost.git] / doc / html / boost_asio / reference / basic_socket / cancel / overload2.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>basic_socket::cancel (2 of 2 overloads)</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="../../../../boost_asio.html" title="Boost.Asio">
8 <link rel="up" href="../cancel.html" title="basic_socket::cancel">
9 <link rel="prev" href="overload1.html" title="basic_socket::cancel (1 of 2 overloads)">
10 <link rel="next" href="../close.html" title="basic_socket::close">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cancel.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../close.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h5 class="title">
27 <a name="boost_asio.reference.basic_socket.cancel.overload2"></a><a class="link" href="overload2.html" title="basic_socket::cancel (2 of 2 overloads)">basic_socket::cancel
28           (2 of 2 overloads)</a>
29 </h5></div></div></div>
30 <p>
31             Cancel all asynchronous operations associated with the socket.
32           </p>
33 <pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="identifier">cancel</span><span class="special">(</span>
34     <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span> <span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">);</span>
35 </pre>
36 <p>
37             This function causes all outstanding asynchronous connect, send and receive
38             operations to finish immediately, and the handlers for cancelled operations
39             will be passed the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">error</span><span class="special">::</span><span class="identifier">operation_aborted</span></code>
40             error.
41           </p>
42 <h6>
43 <a name="boost_asio.reference.basic_socket.cancel.overload2.h0"></a>
44             <span class="phrase"><a name="boost_asio.reference.basic_socket.cancel.overload2.parameters"></a></span><a class="link" href="overload2.html#boost_asio.reference.basic_socket.cancel.overload2.parameters">Parameters</a>
45           </h6>
46 <div class="variablelist">
47 <p class="title"><b></b></p>
48 <dl class="variablelist">
49 <dt><span class="term">ec</span></dt>
50 <dd><p>
51                   Set to indicate what error occurred, if any.
52                 </p></dd>
53 </dl>
54 </div>
55 <h6>
56 <a name="boost_asio.reference.basic_socket.cancel.overload2.h1"></a>
57             <span class="phrase"><a name="boost_asio.reference.basic_socket.cancel.overload2.remarks"></a></span><a class="link" href="overload2.html#boost_asio.reference.basic_socket.cancel.overload2.remarks">Remarks</a>
58           </h6>
59 <p>
60             Calls to <code class="computeroutput"><span class="identifier">cancel</span><span class="special">()</span></code>
61             will always fail with <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">error</span><span class="special">::</span><span class="identifier">operation_not_supported</span></code>
62             when run on Windows XP, Windows Server 2003, and earlier versions of
63             Windows, unless BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo
64             function has two issues that should be considered before enabling its
65             use:
66           </p>
67 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
68 <li class="listitem">
69                 It will only cancel asynchronous operations that were initiated in
70                 the current thread.
71               </li>
72 <li class="listitem">
73                 It can appear to complete without error, but the request to cancel
74                 the unfinished operations may be silently ignored by the operating
75                 system. Whether it works or not seems to depend on the drivers that
76                 are installed.
77               </li>
78 </ul></div>
79 <p>
80             For portable cancellation, consider using one of the following alternatives:
81           </p>
82 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
83 <li class="listitem">
84                 Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
85               </li>
86 <li class="listitem">
87                 Use the <code class="computeroutput"><span class="identifier">close</span><span class="special">()</span></code>
88                 function to simultaneously cancel the outstanding operations and
89                 close the socket.
90               </li>
91 </ul></div>
92 <p>
93             When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx
94             function is always used. This function does not have the problems described
95             above.
96           </p>
97 </div>
98 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
99 <td align="left"></td>
100 <td align="right"><div class="copyright-footer">Copyright &#169; 2003-2014 Christopher M. Kohlhoff<p>
101         Distributed under the Boost Software License, Version 1.0. (See accompanying
102         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
103       </p>
104 </div></td>
105 </tr></table>
106 <hr>
107 <div class="spirit-nav">
108 <a accesskey="p" href="overload1.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cancel.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../boost_asio.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../close.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
109 </div>
110 </body>
111 </html>