Alexander van der Grinten
a972ed12f4
basic: Add make_awaiter()
...
This function explicitly calls the appropriate
operator co_await.
2021-05-20 14:31:18 +02:00
Alexander van der Grinten
71b2b9dcdb
exeuction: Require use of set_value_[no]inline
...
Receivers that only provide set_value() are not valid anymore.
This avoids bugs such as the one mentioned in commit
99a16297b7
.
2021-05-02 14:02:21 +02:00
Kacper Słomiński
019f6ddee0
basic: use frg::aligned_storage instead of std::aligned_storage_t
2021-04-29 19:50:01 +02:00
Dennis Bonke
6266431826
basic: Mark more stuff with noexcept as requested by clang 12
...
Signed-off-by: Dennis Bonke <admin@dennisbonke.com>
2021-04-26 01:34:42 +02:00
Alexander van der Grinten
99a16297b7
execution: Remove start() CPO
...
Users should convert to start_inline() to avoid subtle
bugs (that happened with start() when passing inline-capable
receivers through non-inline-capable algorithms).
2021-04-23 21:18:13 +02:00
Kacper Słomiński
88939c27da
basic: add missing virtual destructor to awaitable_base
2020-12-26 13:46:28 +01:00
Alexander van der Grinten
20e521d3ca
basic: Add spawn_with_allocator
2020-06-22 18:04:27 +02:00
Alexander van der Grinten
db28d35fc2
basic: Add assertions on any_receiver size
2020-06-22 18:03:54 +02:00
Alexander van der Grinten
72bb77ce96
execution: Add start_inline() fast paths
2020-06-06 16:18:09 +02:00
Alexander van der Grinten
ed99c29bca
execution: Add set_value() CPO
2020-06-06 16:10:43 +02:00
Kacper Słomiński
fdf49eb4d1
basic: don't enter io_service when we're already done in run
2020-06-03 18:48:07 +02:00
Kacper Słomiński
86a9ff390e
basic: save previous run_queue in queue_scope
2020-06-03 18:47:49 +02:00
Kacper Słomiński
2326f03c51
basic: add run functions that take the io service
2020-06-01 01:10:40 +02:00
Kacper Słomiński
1f1129895d
basic: add way to force libasync to use experimental header
2020-05-27 13:50:15 +02:00
Alexander van der Grinten
2f6983c78b
basic: Add detach_with_allocator()
2020-05-11 20:29:18 +02:00
Alexander van der Grinten
c070fd892a
basic: Add any_receiver<T>
2020-05-11 20:28:23 +02:00
Kacper Słomiński
c202322a8f
Use non-experimental coroutine inclue when available
2020-05-09 13:18:52 +02:00
Kacper Słomiński
a1adfee0ea
basic: fix sender_receiver with frg::optional value type
2020-05-05 20:30:09 +02:00
Kacper Słomiński
bba6649c3c
basic: allow for overriding thread_local
2020-05-03 02:09:11 +02:00
Alexander van der Grinten
339c1dda23
basic: Add run() top-level function
2020-05-02 15:31:44 +02:00
Kacper Słomiński
33caf6b71e
Make libasync more freestanding
...
The only remaining dependencies on the standard library are std::queue
and std::deque.
2020-05-01 20:35:08 +02:00
Alexander van der Grinten
60ee0c24e6
basic: Use frigg for intrusive lists
2020-05-01 16:20:19 +02:00
Alexander van der Grinten
17ebe74b5a
basic: Disentangle run_queue and io_service
2020-04-25 21:30:45 +02:00
Alexander van der Grinten
42a917fc86
basic: Implement top-level run_forever()
2020-04-25 20:56:22 +02:00
Arsen
7844490279
basic.hpp: use start cpo in sender_awaiter
2020-04-22 19:29:46 +02:00
Alexander van der Grinten
283acd6aaf
basic: Add yield_to_current_queue()
2020-04-21 21:37:27 +02:00
Alexander van der Grinten
c647471ade
execution: Add basic sender/receiver infrastructure
2020-04-21 21:27:50 +02:00
Kacper Słomiński
a2187a16f8
Remove libcofiber related code
2019-12-21 15:49:09 +01:00
Alexander van der Grinten
f696968729
Add async::detached and rewrite detach() code
2019-06-22 12:12:04 +02:00
Alexander van der Grinten
3640dc63b4
basic: Fix virtual destructor warning
2019-06-11 20:25:11 +02:00
Alexander van der Grinten
d3fc60f23c
run_queue: Add run_queue_item interface
2019-03-21 20:44:55 +01:00
Alexander van der Grinten
4a056038ed
general: Start async operation only on await
2019-03-19 19:02:45 +01:00
Alexander van der Grinten
ec38d9c4f7
general: Introduce queue mechanism for awaitables
2018-05-25 23:51:03 +02:00
Alexander van der Grinten
67b62cdde2
Rewrite cancellation support
2018-03-12 20:57:33 +01:00
Alexander van der Grinten
f1b0bfeaee
result: Refactor coroutine promise class
2018-03-08 19:00:42 +01:00
Alexander van der Grinten
9133f53c48
Refactor awaitable mechanism
...
Instead of passing the result value to the callback,
there is now an explicit function to retrieve it.
2018-03-08 18:25:24 +01:00
Alexander van der Grinten
f50e789617
awaitable: Decouple lifetime management
...
Objects of class awaitable now have to rely on external
memory management insteado of providing a detach() function.
2018-03-07 21:43:49 +01:00
Alexander van der Grinten
a1475a6bba
Implement cancellation proof-of-concept
2018-03-07 10:24:45 +01:00
avdgrinten
1663701e49
Initial commit
2016-12-27 14:09:38 +01:00