diff options
| author | levlam <levlam@telegram.org> | 2022-07-22 21:21:30 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2022-07-22 21:21:30 +0300 |
| commit | 4cf1e02479f5eb0d2f30cbc39c5397a165c37bce (patch) | |
| tree | 603aa64db80df2d567d1deacfbc038eccd29eed4 /tdactor/td | |
| parent | 376476481c5fae682ab571f047f32efada3a9343 (diff) | |
Add multiarg version of Scheduler::destroy_on_scheduler.
Diffstat (limited to 'tdactor/td')
| -rw-r--r-- | tdactor/td/actor/impl/Scheduler-decl.h | 3 | ||||
| -rw-r--r-- | tdactor/td/actor/impl/Scheduler.h | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/tdactor/td/actor/impl/Scheduler-decl.h b/tdactor/td/actor/impl/Scheduler-decl.h index 57f49dbb4..a8ec2aaa9 100644 --- a/tdactor/td/actor/impl/Scheduler-decl.h +++ b/tdactor/td/actor/impl/Scheduler-decl.h @@ -105,6 +105,9 @@ class Scheduler { template <class T> void destroy_on_scheduler(int32 sched_id, T &value); + template <class... ArgsT> + void destroy_on_scheduler(int32 sched_id, ArgsT &...values); + template <ActorSendType send_type, class EventT> void send_lambda(ActorRef actor_ref, EventT &&lambda); diff --git a/tdactor/td/actor/impl/Scheduler.h b/tdactor/td/actor/impl/Scheduler.h index 182066145..4319dc2c2 100644 --- a/tdactor/td/actor/impl/Scheduler.h +++ b/tdactor/td/actor/impl/Scheduler.h @@ -179,6 +179,13 @@ inline void Scheduler::destroy_on_scheduler(int32 sched_id, T &value) { } } +template <class... ArgsT> +inline void Scheduler::destroy_on_scheduler(int32 sched_id, ArgsT &...values) { + destroy_on_scheduler_impl(sched_id, PromiseCreator::lambda([values = std::make_tuple(std::move(values)...)](Unit) { + // destroy values + })); +} + inline void Scheduler::before_tail_send(const ActorId<> &actor_id) { // TODO } |
