Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2018. The current version is 1.89.0.
In this section, synchronous socket operations are those
member functions specified as two overloads, with and without an argument
of type error_code&:
R f(A1 a1, A2 a2, ..., AN aN); R f(A1 a1, A2 a2, ..., AN aN, error_code& ec);
For an object s, the conditions under which its synchronous
socket operations may block the calling thread (C++Std [defns.block]) are
determined as follows.
If:
— s.non_blocking() == true,
— the synchronous socket operation is specified in terms of a POSIX
function other than ,
poll()
— that POSIX function lists EWOULDBLOCK or
EAGAIN in its failure conditions, and
— the effects of the operation cannot be established immediately
then the synchronous socket operation shall not block the calling thread. [Note: And the effects of the operation are not established. —end note]
Otherwise, the synchronous socket operation shall block the calling thread until the effects are established.