1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 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.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="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">void cancel( 34 boost::system::error_code & ec); 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">boost::asio::error::operation_aborted</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">cancel()</code> will always fail with <code class="computeroutput">boost::asio::error::operation_not_supported</code> 61 when run on Windows XP, Windows Server 2003, and earlier versions of 62 Windows, unless BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo 63 function has two issues that should be considered before enabling its 64 use: 65 </p> 66<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 67<li class="listitem"> 68 It will only cancel asynchronous operations that were initiated in 69 the current thread. 70 </li> 71<li class="listitem"> 72 It can appear to complete without error, but the request to cancel 73 the unfinished operations may be silently ignored by the operating 74 system. Whether it works or not seems to depend on the drivers that 75 are installed. 76 </li> 77</ul></div> 78<p> 79 For portable cancellation, consider using one of the following alternatives: 80 </p> 81<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 82<li class="listitem"> 83 Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP. 84 </li> 85<li class="listitem"> 86 Use the <code class="computeroutput">close()</code> function to simultaneously cancel the 87 outstanding operations and close the socket. 88 </li> 89</ul></div> 90<p> 91 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx 92 function is always used. This function does not have the problems described 93 above. 94 </p> 95</div> 96<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 97<td align="left"></td> 98<td align="right"><div class="copyright-footer">Copyright © 2003-2020 Christopher M. 99 Kohlhoff<p> 100 Distributed under the Boost Software License, Version 1.0. (See accompanying 101 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>) 102 </p> 103</div></td> 104</tr></table> 105<hr> 106<div class="spirit-nav"> 107<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> 108</div> 109</body> 110</html> 111