1bd95e73e9
Marked async::result as nodiscard
2023-05-05 09:50:18 +02:00
Kacper Słomiński
f8380eb3aa
post-ack: replace std::find_if with hand-written loop
...
std::find_if is broken on frg::intrusive_list iterators.
2022-01-25 13:43:52 +01:00
Kacper Słomiński
e6d509f7e3
execution: fix indentation
2022-01-25 13:43:52 +01:00
Kacper Słomiński
10b4c78b89
basic: get rid of run_token, current_queue and awaitable<T>
2021-10-29 21:52:43 +02:00
Kacper Słomiński
0a8fc387b4
algorithm: fix race_and_cancel inline completion
2021-10-29 21:52:43 +02:00
Kacper Słomiński
594da94e7a
basic: refactor detached to not use run_queue
...
basic: rewrite detach() in terms of detach_with_allocator().
2021-10-19 23:16:15 +02:00
Kacper Słomiński
f89a0a91a3
result: refactor result to not use run_queue
2021-10-19 23:16:15 +02:00
Kacper Słomiński
a33e5927f0
recurring-event: fix warning about non-virtual dtor
2021-10-19 23:04:59 +02:00
Kacper Słomiński
7aaba247b9
sequenced-event: rewrite in terms of recurring-event
2021-10-19 23:04:50 +02:00
Kacper Słomiński
7851a18168
sequenced-event: introduce sequenced_event
...
sequenced_event behaves similarly to recurring_event except it uses a
sequence number to track missed raises.
2021-09-25 19:00:45 +02:00
Kacper Słomiński
4d77c02558
promise: refactor into promise + future, move into it's own file
...
This is more flexible than the previous implementation (which was
basically an oneshot_event that carried a value), and it disentangles
the result<T> implementation from promise<T>.
2021-09-25 19:00:45 +02:00
Alexander van der Grinten
d1edb74575
mutex: Fix multiple shared locks in shared_mutex
2021-07-25 14:34:11 +02:00
Alexander van der Grinten
25fe5cd488
mutex: Add shared_mutex
2021-07-04 22:39:39 +02:00
Alexander van der Grinten
abc4e0aa50
oneshot-event: Add non-cancellable wait()
2021-05-20 17:15:03 +02:00
Alexander van der Grinten
6fe5e9d97e
result: Generalize make_result() to arb. types
2021-05-20 14:31:18 +02:00
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
bf0b368130
Remove async::pledge
...
async::pledge can be replaced by async::oneshot_event
+ a variable to store the value.
2021-05-20 14:31:18 +02:00
Alexander van der Grinten
fc84b45778
post-ack: Fix locking in fast-path
2021-05-06 17:25:07 +02:00
Alexander van der Grinten
beb8ffdff8
jump: Remove in favor of oneshot_event
...
Like async::doorbell, async:jump is obsolete due
to better alternatives.
2021-05-03 18:15:04 +02:00
Alexander van der Grinten
7cbb42a385
doorbell: Remove in favor of recurring_event
...
recurring_event supports race-free waiting in
multi-threaded situations (by using async_wait_if
instead of async_wait). It is also generally written
in a more modern style, using senders/receivers.
2021-05-03 16:59:14 +02:00
Alexander van der Grinten
3acb96630e
recurring-event: Add async_wait() w/o predicate
2021-05-03 16:59:14 +02:00
Alexander van der Grinten
2e7f45f4e3
oneshot-event: Add fast path
2021-05-03 16:59:14 +02:00
Alexander van der Grinten
1b4e4320fe
Merge pull request #7 from Dennisbonke/master
...
Fix several warnings related to non-virtual destructors
2021-05-03 10:59:27 +02:00
Dennis Bonke
017d9e6eae
mutex: Fix several warnings about non-virtual destructors
...
oneshot-event: Fix a warning about non-virtual destructors
post-ack: Fix several warnings about non-virtual destructors
recurring-event: Fix a warning about non-virtual destructors
Signed-off-by: Dennis Bonke <admin@dennisbonke.com>
2021-05-03 00:39:23 +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
Alexander van der Grinten
8107b5f9bc
recurring-event: Add fast path
2021-05-02 14:02:21 +02:00
Alexander van der Grinten
14984bfa46
Merge pull request #6 from Dennisbonke/master
...
execution: Add missing include
2021-04-30 22:43:37 +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
26d6f26447
execution: Add missing include
...
Signed-off-by: Dennis Bonke <admin@dennisbonke.com>
2021-04-29 16:39:13 +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
cbd2d22739
algorithm: Implement ite()
2021-04-25 17:38:16 +02:00
Alexander van der Grinten
cf52688af6
algorithm: Fix missing use of CPO
2021-04-25 17:37:56 +02:00
Alexander van der Grinten
b266c6de57
cancellation: Add missing value_type
2021-04-23 21:19:37 +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
Alexander van der Grinten
1f5641493e
mutex: Fix start() -> start_inline() bug
2021-04-23 21:16:09 +02:00
Alexander van der Grinten
df0fd28198
queue: Make async::queue thread-safe
2021-04-23 21:15:40 +02:00
Alexander van der Grinten
fe832cb5d6
mutex: Fix deadlock of underlying mutex
2021-04-10 22:34:14 +02:00
Dennis Bonke
17d2454553
Several small fixes unrelated to clang
...
algorithm: Fix a gcc compile error
cancellation: Fix a compiler warning
queue: Fix a compiler warning
Signed-off-by: Dennis Bonke <admin@dennisbonke.com>
2021-03-11 22:58:19 +01:00
Dennis Bonke
736eb4e14d
result: Mark several functions as noexcept as required by the spec
...
Signed-off-by: Dennis Bonke <admin@dennisbonke.com>
2021-03-11 22:55:08 +01: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
4202d8ad14
algorithm: Add when_all()
2020-12-23 14:57:36 +01:00
Alexander van der Grinten
0d048e055f
algorithm: Add inline path to sequence()
2020-08-29 13:53:45 +02:00
Alexander van der Grinten
a3440e2f3c
algorithm: Add inline path to transform()
2020-08-29 13:53:24 +02:00
Alexander van der Grinten
cca09d597a
algorithm: Use frg tuples (and not std)
2020-08-29 12:59:16 +02:00
Alexander van der Grinten
39776f2921
algorithm: Use CPO instead of member in sequence()
2020-08-29 12:58:54 +02:00
Alexander van der Grinten
34a6858b0e
algorithm: Fix void functions in transform()
2020-08-29 12:58:32 +02:00
Alexander van der Grinten
63cfa416c6
algorithm: Add invocable() algorithm
2020-08-29 12:57:59 +02:00
Alexander van der Grinten
4e74f9c3ad
algorithm: Add missing include
2020-08-29 12:57:13 +02:00
Kacper Słomiński
b0b071d4fe
algorithm: add sequence() algorithm
2020-08-28 20:35:57 +02:00
Kacper Słomiński
0aeede2c8f
algorithm: add let() algorithm
2020-08-27 20:10:22 +02:00