From 38b2fbe1765f4c91f0ba7dd6a04f8b1699a051b6 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 2 Feb 2023 03:15:10 +0300 Subject: [PATCH] Fix query merge while closing. --- td/telegram/ContactsManager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index ad4f1714e..38fd4dbdf 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -3956,6 +3956,7 @@ ContactsManager::ContactsManager(Td *td, ActorShared<> parent) : td_(td), parent channel_participant_cache_timeout_.set_callback_data(static_cast(this)); get_user_queries_.set_merge_function([this](vector query_ids, Promise &&promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); auto input_users = transform(query_ids, [this](int64 query_id) { auto r_input_user = get_input_user(UserId(query_id)); CHECK(r_input_user.is_ok()); @@ -3964,9 +3965,11 @@ ContactsManager::ContactsManager(Td *td, ActorShared<> parent) : td_(td), parent td_->create_handler(std::move(promise))->send(std::move(input_users)); }); get_chat_queries_.set_merge_function([this](vector query_ids, Promise &&promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); td_->create_handler(std::move(promise))->send(std::move(query_ids)); }); get_channel_queries_.set_merge_function([this](vector query_ids, Promise &&promise) { + TRY_STATUS_PROMISE(promise, G()->close_status()); CHECK(query_ids.size() == 1); auto input_channel = get_input_channel(ChannelId(query_ids[0])); CHECK(input_channel != nullptr);