![]() |
Design rationale for the Asio library.
Support for asynchronous operations in the Asio library is based on the Proactor pattern. This design note outlines the advantages and disadvantages of this approach.
Describes the custom memory allocation support in Asio.
Examines the buffer abstraction used by asio in order to support scatter-gather operations.
Discusses why the end-of-file condition should be an error code.
Outlines Asio's support for line-based protocols.
An implementation of Asio for a particular platform may make use of one or more additional threads to emulate asynchronicity. This design note discusses design rules applied to the use of threads in this way.
Describes the "strand" abstraction provided by Asio to ease concurrent programming and provide scalability across multiple processors.
This design note lists platform-specific implementation details, such as the default demultiplexing mechanism, the number of threads created internally, and when threads are created.