2
0
mirror of https://github.com/boostorg/asio.git synced 2026-01-19 16:12:09 +00:00

566 Commits

Author SHA1 Message Date
Christopher Kohlhoff
8b7c626c1a Revision history. 2025-12-04 00:06:23 +11:00
Christopher Kohlhoff
5b454c619c Various documentation fixes and improvements. 2025-12-03 23:52:14 +11:00
Christopher Kohlhoff
c54e09ae5e Add checks for empty parallel groups.
The parallel_group and make_parallel_group implementations satisfy the
asynchronous operation requirements by delegating to the supplied
operations. It is not possible for them to do this when the supplied set
is empty.
2025-12-01 22:55:40 +11:00
Christopher Kohlhoff
00988b643e Revision history. 2025-11-05 23:25:24 +11:00
Christopher Kohlhoff
f23e04f1ef Regenerate documentation. 2025-11-05 21:42:58 +11:00
Christopher Kohlhoff
f78650cb3e Fix broken doc link. 2025-11-05 20:43:46 +11:00
Christopher Kohlhoff
b87a07f2cc Update doc generation config. 2025-11-05 20:43:18 +11:00
Christopher Kohlhoff
079fb7595f Fix typos in overview documentation. 2025-11-05 20:42:18 +11:00
Christopher Kohlhoff
01957d1d8f Add config option to determine whether eventfd is used.
Add a new configuration option "reactor" / "use_eventfd" that is used by
the epoll_reactor. When true (the default), the reactor uses an eventfd
as its select_interrupter implementation. When false, a pipe is used
instead.
2025-11-05 20:15:29 +11:00
Christopher Kohlhoff
8f570d4664 Add config option to determine whether timerfd is used.
Add a new configuration option "reactor" / "use_timerfd" that is used by
the epoll_reactor. When true (the default), the reactor uses a timerfd
descriptor to manage timeouts. When false, the duration until the next
timeout is computed and passed as a timeout to epoll_wait.
2025-11-05 20:15:02 +11:00
Christopher Kohlhoff
99b121ded1 Fix documentation typos. 2025-11-04 23:48:54 +11:00
Christopher Kohlhoff
b24b92813a Add config option for whether a partial read consumes an edge trigger.
Add a new configuration option "reactor" / "reset_edge_on_partial_read"
that is used by the epoll_reactor. When true, it indicates that a partial
read should be considered to have consumed the edge. The default value of
false corresponds to the existing behaviour, where the edge is only
treated as consumed when the read fails with EAGAIN.
2025-11-04 23:47:45 +11:00
Christopher Kohlhoff
f49a0add53 Add redirect_disposition completion token adapter. 2025-11-04 23:42:51 +11:00
Christopher Kohlhoff
5fa261e86d Add inline_or_executor<> and inline_or(). 2025-10-30 08:28:04 +11:00
Christopher Kohlhoff
ca8e124b87 Make inline_executor the default candidate for associated_executor. 2025-10-29 22:59:03 +11:00
Christopher Kohlhoff
84c45dbe48 Add inline_executor. 2025-10-29 22:58:47 +11:00
Christopher Kohlhoff
82c9b858c8 Add execution::inline_exception_handling property. 2025-10-29 22:57:58 +11:00
Christopher Kohlhoff
60cae1d006 Revision history. 2025-08-06 22:29:48 +10:00
Christopher Kohlhoff
a96885268f Add documentation note on basic_signal_set's async signal safety. 2025-08-06 22:16:18 +10:00
Christopher Kohlhoff
24d13e8270 Revision history. 2025-07-09 21:29:02 +10:00
Christopher Kohlhoff
f8aed31b15 Regenerate documentation. 2025-07-09 20:50:16 +10:00
Christopher Kohlhoff
751cec5701 Make BOOST_ASIO_CONCURRENCY_HINT_SAFE consistent with io_context default constructor.
Also fixed docs for BOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IO to reflect
that registration locking is still enabled.
2025-07-09 09:12:53 +10:00
Christopher Kohlhoff
cb99678035 Remove deadline_timer and time_traits from the convenience header. 2025-07-07 20:44:27 +10:00
Christopher Kohlhoff
9e11596f81 Allow async_resolve to use a configurable number of internal threads.
The number of threads used to emulate asynchronous address resolution is
now adjustable via the "resolver" / "threads" configuration option. If
this is set to a non-zero value, that number of threads will be created
when the first resolver object is constructed. Otherwise, it defaults to
a single thread that is created on the first call to async_resolve.
2025-07-02 20:43:27 +10:00
Christopher Kohlhoff
a50d0e7246 Use execution_context allocator in timer queues.
Added new configuration parameter "timer" / "heap_reserve" that may be
used to reserve space in the vector used for a timer queue's heap.
2025-07-02 20:43:27 +10:00
Christopher Kohlhoff
d26f76aced Use execution_context allocator for object pooling in reactors. 2025-07-02 20:43:27 +10:00
Christopher Kohlhoff
46efdf66be Revision history. 2025-04-02 23:31:14 +11:00
Christopher Kohlhoff
e0999c67fc Regenerate documentation. 2025-04-02 23:31:09 +11:00
Christopher Kohlhoff
960482db0f Fix broken links in documentation. 2025-04-02 23:30:56 +11:00
Christopher Kohlhoff
6dad896196 Add runtime configuration options to the overview. 2025-04-02 21:22:57 +11:00
Christopher Kohlhoff
0f309bb273 Update use of deferred in overview. 2025-04-01 22:02:47 +11:00
Christopher Kohlhoff
a8ac04d8d6 Update async_result documentation to reflect current type requirements. 2025-04-01 22:02:47 +11:00
Christopher Kohlhoff
726fdd4d69 Revision history. 2025-03-05 23:02:50 +11:00
Christopher Kohlhoff
ffc3352c15 Clarify file_base::flags usage when opening a file. 2025-03-04 23:01:52 +11:00
Christopher Kohlhoff
1afbc5c12b Update copyright notices. 2025-03-04 22:57:26 +11:00
Christopher Kohlhoff
d1f9d7442e Revision history. 2024-12-04 21:52:37 +11:00
Christopher Kohlhoff
d09bdb6236 Regenerate documentation. 2024-12-04 20:35:54 +11:00
Christopher Kohlhoff
4d9826c187 Relax disposition requirements to only require nothrow move. 2024-12-03 08:38:12 +11:00
Christopher Kohlhoff
73bba842b9 Revision history. 2024-11-06 23:10:59 +11:00
Christopher Kohlhoff
6afb13b7a1 Regenerate documentation. 2024-11-06 21:15:57 +11:00
Christopher Kohlhoff
9c393a02c4 Regenerate documentation. 2024-10-31 21:10:31 +11:00
Christopher Kohlhoff
b0fe7b2df8 Add disposition requirements to the documentation. 2024-10-31 20:31:20 +11:00
Christopher Kohlhoff
bbda620590 Add asio::config.
The asio::config class provides access to configuration variables that
are associated with an execution context. The class is intended for use
by asio internals, or by libraries or user-provided abstractions that
build on top of asio. These configuration variables will typically be
used to fine tune behaviour, such as enabling or disabling certain
optimisations.

When constructing an execution context, such as an io_context, the
caller may optionally pass a service_maker to install a concrete
configuration service into the context. For example:

  asio::io_context ctx{asio::config_from_env{}};

The configuration variables' values are accessed by using the
asio::config class, passing a section, key and default value:

  asio::config cfg{ctx};
  bool enable_locking = cfg.get("scheduler", "locking", true);

The initial set of configuration variables recognised by the asio
internals correspond to the concurrency hint and its special values:

  "scheduler" / "concurrency_hint" (int)
  "scheduler" / "locking" (bool)
  "reactor" / "registration_locking" (bool)
  "reactor" / "io_locking" (bool)
2024-10-30 23:01:37 +11:00
Christopher Kohlhoff
dc8dc3e192 Add execution_context::service_maker abstract base class.
A service_maker is an object that is passed to an execution context's
constructor, and allows services to be added at context construction
time. Additional constructor overloads have been added to io_context and
thread_pool that accept a service_maker. For example:

  class my_service_maker : public execution_context::service_maker
  {
  public:
    void make(execution_context& ctx) override
    {
      make_service<my_service>(ctx);
    }
  };

  io_context ctx{my_service_maker{}};
2024-10-30 23:00:28 +11:00
Christopher Kohlhoff
a212d8180f Regenerate documentation. 2024-10-23 21:40:00 +11:00
Christopher Kohlhoff
6e4171839e Deprecate deadline_timer and associated types. 2024-10-23 21:21:20 +11:00
Christopher Kohlhoff
bc417934ec Deprecate basic_io_object. 2024-10-23 21:21:02 +11:00
Christopher Kohlhoff
e3bbcc412a Remove deprecated dispatch and post members from io_context and io_context::strand. 2024-10-23 21:20:42 +11:00
Christopher Kohlhoff
3490144b26 Remove deprecated class io_context::work. 2024-10-23 21:18:50 +11:00
Christopher Kohlhoff
ec0908c562 Remove deprecated alias io_service. 2024-10-23 21:18:31 +11:00