1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>basic_socket::cancel (1 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.79.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="../cancel.html" title="basic_socket::cancel"> 10<link rel="next" href="overload2.html" title="basic_socket::cancel (2 of 2 overloads)"> 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="../cancel.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="overload2.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.overload1"></a><a class="link" href="overload1.html" title="basic_socket::cancel (1 of 2 overloads)">basic_socket::cancel 28 (1 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">void cancel(); 34</pre> 35<p> 36 This function causes all outstanding asynchronous connect, send and receive 37 operations to finish immediately, and the handlers for cancelled operations 38 will be passed the <code class="computeroutput">boost::asio::error::operation_aborted</code> 39 error. 40 </p> 41<h6> 42<a name="boost_asio.reference.basic_socket.cancel.overload1.h0"></a> 43 <span class="phrase"><a name="boost_asio.reference.basic_socket.cancel.overload1.exceptions"></a></span><a class="link" href="overload1.html#boost_asio.reference.basic_socket.cancel.overload1.exceptions">Exceptions</a> 44 </h6> 45<div class="variablelist"> 46<p class="title"><b></b></p> 47<dl class="variablelist"> 48<dt><span class="term">boost::system::system_error</span></dt> 49<dd><p> 50 Thrown on failure. 51 </p></dd> 52</dl> 53</div> 54<h6> 55<a name="boost_asio.reference.basic_socket.cancel.overload1.h1"></a> 56 <span class="phrase"><a name="boost_asio.reference.basic_socket.cancel.overload1.remarks"></a></span><a class="link" href="overload1.html#boost_asio.reference.basic_socket.cancel.overload1.remarks">Remarks</a> 57 </h6> 58<p> 59 Calls to <code class="computeroutput">cancel()</code> will always fail with <code class="computeroutput">boost::asio::error::operation_not_supported</code> 60 when run on Windows XP, Windows Server 2003, and earlier versions of 61 Windows, unless BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo 62 function has two issues that should be considered before enabling its 63 use: 64 </p> 65<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 66<li class="listitem"> 67 It will only cancel asynchronous operations that were initiated in 68 the current thread. 69 </li> 70<li class="listitem"> 71 It can appear to complete without error, but the request to cancel 72 the unfinished operations may be silently ignored by the operating 73 system. Whether it works or not seems to depend on the drivers that 74 are installed. 75 </li> 76</ul></div> 77<p> 78 For portable cancellation, consider using one of the following alternatives: 79 </p> 80<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 81<li class="listitem"> 82 Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP. 83 </li> 84<li class="listitem"> 85 Use the <code class="computeroutput">close()</code> function to simultaneously cancel the 86 outstanding operations and close the socket. 87 </li> 88</ul></div> 89<p> 90 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx 91 function is always used. This function does not have the problems described 92 above. 93 </p> 94</div> 95<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 96<td align="left"></td> 97<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 98 Kohlhoff<p> 99 Distributed under the Boost Software License, Version 1.0. (See accompanying 100 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>) 101 </p> 102</div></td> 103</tr></table> 104<hr> 105<div class="spirit-nav"> 106<a accesskey="p" href="../cancel.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="overload2.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 107</div> 108</body> 109</html> 110