Christopher Kohlhoff
517e25cdcb
Ensure concept-related traits work with void.
2020-07-31 18:47:51 +10:00
Christopher Kohlhoff
e53feeb5bf
Add constraints to strand<>'s constructor to prevent template instantiation recursion.
2020-07-31 18:47:27 +10:00
Christopher Kohlhoff
0ccf4662cc
Use constraints on any_executor's converting constructors, as per the specification.
2020-07-31 18:43:49 +10:00
Christopher Kohlhoff
e0cb6b1c11
Add short-circuiting to traits evaluation.
...
Test first for well-formed CPO expressions (or, in the case of senders,
a specialised sender_traits template) and, if not valid, short-circuit
the remainder of the traits evaluation. This helps prevent recursive
template instantiations that can occur in some contexts.
2020-07-31 18:43:38 +10:00
Christopher Kohlhoff
543c453423
Make blocking_t::always_t::is_preferable false as per specification.
2020-07-28 22:16:24 +10:00
Christopher Kohlhoff
db0d05de01
Fix typos.
2020-07-28 22:14:03 +10:00
Christopher Kohlhoff
bfdf118094
Fix reference to asio::query customisation point.
2020-07-28 22:12:31 +10:00
Christopher Kohlhoff
3ee1087d1c
Add detailed descriptions for standard executor-related member functions.
2020-07-27 09:37:15 +10:00
Christopher Kohlhoff
60532356ff
Fix up trait specialisations for use_future's executor.
2020-07-27 09:34:18 +10:00
Christopher Kohlhoff
2b200181e8
Fix executor_type definition in async_compose implementation.
2020-07-27 09:34:04 +10:00
Christopher Kohlhoff
badd16b2ff
Fix detection of standard executors as I/O executors in async_compose.
2020-07-27 09:33:49 +10:00
Christopher Kohlhoff
55a6f4aefe
Add workaround for coroutine argument capture problem in gcc 10.
2020-07-25 01:02:39 +10:00
Christopher Kohlhoff
6df0fc4e47
Fix typo in forward declaration of any_io_executor.
2020-07-25 01:02:23 +10:00
Christopher Kohlhoff
aa5a315a14
Add missing definition of BOOST_ASIO_EXECUTION_RECEIVER_OF_n macros.
2020-07-23 21:54:56 +10:00
Christopher Kohlhoff
d6c343b498
Add missing sender traits and connect() member to thread_pool executor.
2020-07-23 21:54:42 +10:00
Christopher Kohlhoff
95da815545
Add standard executor support to windows::overlapped_ptr.
2020-07-23 21:54:16 +10:00
Christopher Kohlhoff
bd20783944
Fix compatibility with clang-cl.
2020-07-23 21:53:52 +10:00
Christopher Kohlhoff
b54750e280
Add missing noexcept to basic_socket_acceptor move constructor.
2020-07-23 21:53:34 +10:00
Christopher Kohlhoff
db9a5c28e4
Fix mismatched comments.
2020-07-23 21:53:23 +10:00
Christopher Kohlhoff
d73cdc7db5
Fix namespace used for coroutine_traits specialisation.
2020-07-23 21:53:05 +10:00
Christopher Kohlhoff
71ae183e73
Destroy the awaitable's frame as the result is consumed.
...
This change works around a gcc 10 bug, where the temporary awaitable
object being awaited is not destroyed if the co_await resumes with an
exception.
2020-07-23 21:52:50 +10:00
Christopher Kohlhoff
42ec2bb656
Ensure traits specialisations are correctly enabled for the bulk_execute adapter.
2020-07-23 21:52:38 +10:00
Christopher Kohlhoff
740762b48f
Pass receiver as a non-const lvalue when move support is unavailable.
2020-07-23 21:52:22 +10:00
Christopher Kohlhoff
cb75e92f14
No longer need to forward declare the io_context implementation.
2020-07-23 21:52:05 +10:00
Christopher Kohlhoff
eeb12fb723
Remove unused variable.
2020-07-23 21:51:49 +10:00
Christopher Kohlhoff
d69a55b338
Increase minimum gcc version required for SFINAEd variable templates.
2020-07-23 21:51:24 +10:00
Christopher Kohlhoff
2d27fc7123
Interim version bump.
2020-07-10 15:38:43 +10:00
Christopher Kohlhoff
ce4449c9c7
Add missing variadic pack expansion.
2020-07-10 14:36:20 +10:00
Christopher Kohlhoff
2b00773dad
Ensure [[nodiscard]] is enabled only for C++17 or later.
2020-07-10 09:41:51 +10:00
Christopher Kohlhoff
cdae3445dd
Add any_io_executor to ts/executor.hpp.
2020-07-10 09:41:35 +10:00
Christopher Kohlhoff
e2e2bfc006
Bump minimum gcc version for BOOST_ASIO_HAS_VARIABLE_TEMPLATES.
...
Require gcc 6 or later for C++14 variable templates, as gcc 5
has a bug when they are used as dependent names.
2020-07-09 23:18:06 +10:00
Christopher Kohlhoff
8a83ba633d
Replace identical helper structs with void_type.
2020-07-07 23:37:18 +10:00
Christopher Kohlhoff
b6b095455b
Use separate name as function overloading isn't needed here.
2020-07-07 23:36:03 +10:00
Christopher Kohlhoff
de0aeda0b0
Older compilers need executor destructors to be marked noexcept.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
4d6573677c
Fix documentation of execution::can_schedule trait.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
b1af304069
Fix documentation of execution::is_executor_of trait.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
d497ba96c6
Rename the customisation point traits X_result_type to X_result.
...
For consistency with std::invoke_result, drop the _type suffix from all
traits that deduce the result type of a customisation point expression.
2020-07-06 23:33:14 +10:00
Christopher Kohlhoff
71941a6bb1
Add support for native I/O executor detection with any_executor.
2020-07-06 00:47:41 +10:00
Christopher Kohlhoff
f18d7f748b
Reduce async op memory usage for handlers without a custom executor.
2020-07-06 00:47:31 +10:00
Christopher Kohlhoff
b2ce3c73e0
Older MSVC needs an explicit move constructor.
2020-07-06 00:47:22 +10:00
Christopher Kohlhoff
881e6eea5e
Mark query, prefer, require, and require_concept as [[nodiscard]].
2020-07-06 00:47:06 +10:00
Christopher Kohlhoff
98107ffb09
Use the execution::execute() customisation point for any_executor's target.
2020-07-04 14:46:54 +10:00
Christopher Kohlhoff
5a69376da9
Add missing adapter support to execution::bulk_execute() customisation point.
2020-07-04 01:24:01 +10:00
Christopher Kohlhoff
614cdbf0c5
Fix adapter support in execution::execute() customisation point.
2020-07-04 01:23:20 +10:00
Christopher Kohlhoff
2e9621e8ba
Add missing member and non-member swap to any_executor.
2020-07-04 01:23:11 +10:00
Christopher Kohlhoff
9af6e05eb5
Add missing equality/inequality operators to any_executor.
2020-07-04 01:22:56 +10:00
Christopher Kohlhoff
8f755ac905
Add missing any_executor constructor/assignment overloads.
2020-07-03 14:45:46 +10:00
Christopher Kohlhoff
f1b1309d59
Initialise destination's target when copying/moving from an empty any_executor.
2020-07-03 14:45:04 +10:00
Christopher Kohlhoff
b86333cf14
Ensure co_spawn compiles when BOOST_ASIO_NO_TS_EXECUTORS is defined.
2020-07-03 11:53:24 +10:00
Christopher Kohlhoff
ff695a0376
Simplify overloads in any_executor's query() backend.
2020-07-02 20:12:55 +10:00