Christopher Kohlhoff
fd0d867873
Add documentation for execution concepts.
2020-07-06 18:18:41 +10:00
Christopher Kohlhoff
6e7aa85114
Add support for native I/O executor detection with any_executor.
2020-07-05 22:26:23 +10:00
Christopher Kohlhoff
2ba0da923f
Reduce async op memory usage for handlers without a custom executor.
2020-07-05 22:26:23 +10:00
Christopher Kohlhoff
dc54496606
Older MSVC needs an explicit move constructor.
2020-07-05 13:13:03 +10:00
Christopher Kohlhoff
1fff3cac15
Mark query, prefer, require, and require_concept as [[nodiscard]].
2020-07-05 12:24:00 +10:00
Christopher Kohlhoff
a1ddf0c7cb
Test any_executor construction and assignment with large targets.
2020-07-05 11:43:11 +10:00
Christopher Kohlhoff
e44586a492
Use the execution::execute() customisation point for any_executor's target.
2020-07-04 10:46:03 +10:00
Christopher Kohlhoff
587a5305f8
Add missing adapter support to execution::bulk_execute() customisation point.
2020-07-04 01:15:12 +10:00
Christopher Kohlhoff
3ed9ae7cc4
Fix adapter support in execution::execute() customisation point.
2020-07-03 20:17:17 +10:00
Christopher Kohlhoff
10310a0837
Add missing member and non-member swap to any_executor.
2020-07-03 18:25:54 +10:00
Christopher Kohlhoff
f3ab26338e
Add missing equality/inequality operators to any_executor.
2020-07-03 15:30:56 +10:00
Christopher Kohlhoff
f2434b2373
Add missing any_executor constructor/assignment overloads.
2020-07-03 13:24:24 +10:00
Christopher Kohlhoff
1b3229507f
Initialise destination's target when copying/moving from an empty any_executor.
2020-07-03 12:52:16 +10:00
Christopher Kohlhoff
d80175ab62
Fix C++14 detection when clang is used.
2020-07-03 08:44:32 +10:00
Christopher Kohlhoff
dcaa5588fc
Ensure co_spawn compiles when ASIO_NO_TS_EXECUTORS is defined.
2020-07-03 08:43:36 +10:00
Christopher Kohlhoff
a975aec304
Simplify overloads in any_executor's query() backend.
2020-07-02 19:26:06 +10:00
Christopher Kohlhoff
f228ad470e
Fix ASIO_NO_EXCEPTIONS support.
2020-07-02 19:01:47 +10:00
Christopher Kohlhoff
2bf9f7467c
Suppress conversion warning with MSVC.
2020-07-02 18:55:00 +10:00
Christopher Kohlhoff
fa5497f92a
Fix compilation in MSVC's non-permissive mode.
2020-07-02 13:40:35 +10:00
Christopher Kohlhoff
aa11542e38
Add bulk_execute() to thread_pool executor.
2020-07-01 23:32:14 +10:00
Christopher Kohlhoff
9174724d04
Add execution::bulk_execute customisation point object.
2020-07-01 23:06:23 +10:00
Christopher Kohlhoff
f5c3c0bc46
Add adapter for execution::blocking_t::always_t.
2020-07-01 21:12:50 +10:00
Christopher Kohlhoff
672025bdf8
Add adapter for execution::blocking_adaptation_t::allowed_t.
2020-07-01 20:45:10 +10:00
Christopher Kohlhoff
b3f1f4e46e
Limit variadic expansion for use_future's std::tuple support.
2020-07-01 13:02:04 +10:00
Christopher Kohlhoff
2442078aa1
Explicitly delete copy construction and assignment for derived socket classes.
2020-07-01 13:02:04 +10:00
Christopher Kohlhoff
c9dde400d2
Add execution::context_t::polymorphic_query_result_type.
2020-07-01 12:19:22 +10:00
Christopher Kohlhoff
270595334f
Add execution::typed_sender concept and execution::is_typed_sender trait.
2020-07-01 12:19:22 +10:00
Christopher Kohlhoff
46c66fa69a
Use correct allocator type in system_executor dispatch/post.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
07df1f3561
Add missing equality_comparable trait for strand<>.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
74b4e98f16
Add missing equality_comparable trait for execution::any_executor.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
4fd49a1e93
Add missing equality_comparable trait for system_executor.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
6c06d48c3e
Add missing equality_comparable trait for io_context executors.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
94fbe6d505
Add scheduler and sender support to thread_pool.
...
The thread_pool::basic_executor_type class template is used as the
implementation for both the scheduler and sender types.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
27571e12bf
Make properties applicable to executors, senders, and schedulers.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
cf1ce42128
Fix documentation for execution::prefer_only.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
712ea05b43
Add execution::scheduler concept and execution::is_scheduler trait.
2020-06-30 22:38:46 +10:00
Christopher Kohlhoff
efcb6573c9
Add execution::executor_index trait.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
04a4e491dd
Add execution::executor_shape trait.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
e82bbef4df
Add execution::schedule() customisation point object.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
115b3b111d
Add execution::execute() support for adapting senders.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
d4afc16918
Add execution::submit() customisation point object.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
56409abe01
Change execution::sender_traits to recognise executors as senders.
2020-06-30 22:37:44 +10:00
Christopher Kohlhoff
a451ec4ad0
Add execution::sender_to concept and execution::is_sender_to trait.
2020-06-30 22:14:40 +10:00
Christopher Kohlhoff
a3db254de7
Add execution::connect() customisation point object.
2020-06-30 22:14:40 +10:00
Christopher Kohlhoff
9b29e75a43
Add execution::receiver_invocation_error exception.
2020-06-30 22:04:39 +10:00
Christopher Kohlhoff
08af3e76bf
Add execution::sender concepts and traits.
...
This change adds the concept:
* execution::sender
the traits:
* execution::sender_traits
and the tag type:
* execution::sender_base
It also adds the following traits that correspond to the concepts:
* execution::is_sender
2020-06-30 22:04:39 +10:00
Christopher Kohlhoff
4a5a7c5c0e
Add execution::operation_state concept and execution::is_operation_state trait.
2020-06-30 22:04:39 +10:00
Christopher Kohlhoff
1a5fa59815
Add execution::start() customisation point object.
2020-06-30 22:04:39 +10:00
Christopher Kohlhoff
a2e718da65
Add execution::executor_of concept and execution::is_executor trait.
2020-06-30 22:04:39 +10:00
Christopher Kohlhoff
afff66d73e
Add execution::receiver concepts and traits.
...
This change adds the concepts:
* execution::receiver
* execution::receiver_of
and the trait:
* execution::is_nothrow_receiver_of
It also adds the following traits that correspond to the concepts:
* execution::is_receiver
* execution::is_receiver_of
2020-06-30 21:59:10 +10:00