diff --git a/td/telegram/Td.cpp b/td/telegram/Td.cpp index 80408671c..4c5a72d6f 100644 --- a/td/telegram/Td.cpp +++ b/td/telegram/Td.cpp @@ -2965,10 +2965,11 @@ void Td::run_request(uint64 id, tl_object_ptr function) { !parameters.second.use_message_database_ && !parameters.first.use_secret_chats_; - auto promise = PromiseCreator::lambda([actor_id = actor_id(this), parameters = std::move(parameters.first)]( - Result r_opened_database) mutable { - send_closure(actor_id, &Td::init, std::move(parameters), std::move(r_opened_database)); - }); + auto promise = PromiseCreator::lambda( + [actor_id = actor_id(this), parameters = std::move(parameters.first), + parent = create_reference()](Result r_opened_database) mutable { + send_closure(actor_id, &Td::init, std::move(parameters), std::move(r_opened_database)); + }); auto use_sqlite_pmc = parameters.second.use_message_database_ || parameters.second.use_chat_info_database_ || parameters.second.use_file_database_; return TdDb::open(use_sqlite_pmc ? G()->get_database_scheduler_id() : G()->get_slow_net_scheduler_id(),