1[/
2 / Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com)
3 /
4 / Distributed under the Boost Software License, Version 1.0. (See accompanying
5 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 /]
7
8[section:asynchronous_socket_operations Requirements on asynchronous socket operations]
9
10In this library, ['asynchronous socket operations] are those member functions
11having prefix `async_`.
12
13For an object `s`, a program may initiate asynchronous socket operations such
14that there are multiple simultaneously outstanding asynchronous operations.
15
16When there are multiple outstanding asynchronous [link
17boost_asio.reference.read_write_operations read operations] on `s`:
18
19[mdash] having no argument `flags` of type `socket_base::message_flags`, or
20
21[mdash] having an argument `flags` of type `socket_base::message_flags` but
22where `(flags & socket_base::message_out_of_band) == 0`
23
24then the `buffers` are filled in the order in which these operations were
25issued. The order of invocation of the completion handlers for these operations
26is unspecified.
27
28When there are multiple outstanding asynchronous [link
29boost_asio.reference.read_write_operations read operations] on `s` having an argument
30`flags` of type `socket_base::message_flags` where `(flags &
31socket_base::message_out_of_band) != 0` then the `buffers` are filled in the
32order in which these operations were issued.
33
34When there are multiple outstanding asynchronous [link
35boost_asio.reference.read_write_operations write operations] on `s`, the `buffers`
36are transmitted in the order in which these operations were issued. The order
37of invocation of the completion handlers for these operations is unspecified.
38
39[endsect]
40