...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This section lists platform-specific implementation details, such as the default demultiplexing mechanism, the number of threads created internally, and when threads are created.
Demultiplexing mechanism:
select
for demultiplexing.
This means that the number of file descriptors in the process cannot be
permitted to exceed FD_SETSIZE
.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
epoll
for demultiplexing.
Threads:
epoll
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
/dev/poll
for demultiplexing.
Threads:
/dev/poll
is performed in one of
the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
select
for demultiplexing.
This means that the number of file descriptors in the process cannot be
permitted to exceed FD_SETSIZE
.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
kqueue
for demultiplexing.
Threads:
kqueue
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
kqueue
for demultiplexing.
Threads:
kqueue
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
select
for demultiplexing.
This means that the number of file descriptors in the process cannot be
permitted to exceed FD_SETSIZE
.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
select
for demultiplexing.
This means that the number of file descriptors in the process cannot be
permitted to exceed FD_SETSIZE
.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
select
for demultiplexing.
This means that the number of file descriptors in the process cannot be
permitted to exceed FD_SETSIZE
.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
min(64,IOV_MAX)
buffers may be transferred in a single
operation.
Demultiplexing mechanism:
select
for demultiplexing.
Threads:
select
is performed in one of the threads that calls io_service::run()
, io_service::run_one()
, io_service::poll()
or io_service::poll_one()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather:
Demultiplexing mechanism:
select
for emulating
asynchronous connect.
Threads:
io_service::run()
,
io_service::run_one()
,
io_service::poll()
or io_service::poll_one()
.
io_service
is used for the select
demultiplexing. This thread is created on the first call to async_connect()
.
io_service
is used to emulate asynchronous host resolution. This thread is created
on the first call to either ip::tcp::resolver::async_resolve()
or ip::udp::resolver::async_resolve()
.
Scatter-Gather: