Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Requirements on synchronous socket operations

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.


PrevUpHomeNext