diff options
| author | levlam <levlam@telegram.org> | 2025-01-27 17:20:11 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2025-01-27 17:20:11 +0300 |
| commit | 0a273dd34c7effda248945563f5e5fd80e9f3fb4 (patch) | |
| tree | 8b3811e93eae9fa576cdbe0f924f21f83e90d047 | |
| parent | 06d39cdc0d216cef370ba5331819192f2bf18f64 (diff) | |
Move fail_promise_map to tdutils.
| -rw-r--r-- | td/telegram/MessagesManager.cpp | 16 | ||||
| -rw-r--r-- | td/telegram/StoryManager.cpp | 12 | ||||
| -rw-r--r-- | tdutils/td/utils/Promise.h | 10 |
3 files changed, 16 insertions, 22 deletions
diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 534293e28..af1022b49 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -10214,18 +10214,10 @@ void MessagesManager::hangup() { } fail_promises(load_active_live_location_messages_queries_, Global::request_aborted_error()); - auto fail_promise_map = [](auto &queries) { - while (!queries.empty()) { - auto it = queries.begin(); - auto promises = std::move(it->second); - queries.erase(it); - fail_promises(promises, Global::request_aborted_error()); - } - }; - fail_promise_map(get_dialog_queries_); - fail_promise_map(load_scheduled_messages_from_database_queries_); - fail_promise_map(run_after_get_channel_difference_); - fail_promise_map(get_history_queries_); + fail_promise_map(get_dialog_queries_, Global::request_aborted_error()); + fail_promise_map(load_scheduled_messages_from_database_queries_, Global::request_aborted_error()); + fail_promise_map(run_after_get_channel_difference_, Global::request_aborted_error()); + fail_promise_map(get_history_queries_, Global::request_aborted_error()); while (!pending_channel_on_get_dialogs_.empty()) { auto it = pending_channel_on_get_dialogs_.begin(); auto queries = std::move(it->second); diff --git a/td/telegram/StoryManager.cpp b/td/telegram/StoryManager.cpp index 898728e37..cac614583 100644 --- a/td/telegram/StoryManager.cpp +++ b/td/telegram/StoryManager.cpp @@ -1633,16 +1633,8 @@ void StoryManager::timeout_expired() { } void StoryManager::hangup() { - auto fail_promise_map = [](auto &queries) { - while (!queries.empty()) { - auto it = queries.begin(); - auto promises = std::move(it->second); - queries.erase(it); - fail_promises(promises, Global::request_aborted_error()); - } - }; - fail_promise_map(reload_story_queries_); - fail_promise_map(delete_yet_unsent_story_queries_); + fail_promise_map(reload_story_queries_, Global::request_aborted_error()); + fail_promise_map(delete_yet_unsent_story_queries_, Global::request_aborted_error()); stop(); } diff --git a/tdutils/td/utils/Promise.h b/tdutils/td/utils/Promise.h index 630f1541b..9d5a34444 100644 --- a/tdutils/td/utils/Promise.h +++ b/tdutils/td/utils/Promise.h @@ -370,4 +370,14 @@ void fail_promises(vector<Promise<T>> &promises, Status &&error) { moved_promises[size].set_error(std::move(error)); } +template <class T> +void fail_promise_map(T &promise_map, Status &&error) { + while (!promise_map.empty()) { + auto it = promise_map.begin(); + auto promises = std::move(it->second); + promise_map.erase(it); + fail_promises(promises, error.clone()); + } +} + } // namespace td |
