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