From 044fdb310fd06f7bf2de51fec8f929aaf935bce8 Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 6 Mar 2022 02:50:57 +0300 Subject: [PATCH] Use send_closure_later to avoid cycles. --- td/telegram/DownloadManagerCallback.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/td/telegram/DownloadManagerCallback.cpp b/td/telegram/DownloadManagerCallback.cpp index 831eab3ba..80183d53d 100644 --- a/td/telegram/DownloadManagerCallback.cpp +++ b/td/telegram/DownloadManagerCallback.cpp @@ -40,19 +40,19 @@ void DownloadManagerCallback::update_file_removed(FileId file_id) { } void DownloadManagerCallback::start_file(FileId file_id, int8 priority, ActorShared download_manager) { - send_closure(td_->file_manager_actor_, &FileManager::download, file_id, - make_download_file_callback(td_, std::move(download_manager)), priority, - FileManager::KEEP_DOWNLOAD_OFFSET, FileManager::IGNORE_DOWNLOAD_LIMIT); + send_closure_later(td_->file_manager_actor_, &FileManager::download, file_id, + make_download_file_callback(td_, std::move(download_manager)), priority, + FileManager::KEEP_DOWNLOAD_OFFSET, FileManager::IGNORE_DOWNLOAD_LIMIT); } void DownloadManagerCallback::pause_file(FileId file_id) { - send_closure(td_->file_manager_actor_, &FileManager::download, file_id, nullptr, 0, FileManager::KEEP_DOWNLOAD_OFFSET, - FileManager::KEEP_DOWNLOAD_LIMIT); + send_closure_later(td_->file_manager_actor_, &FileManager::download, file_id, nullptr, 0, + FileManager::KEEP_DOWNLOAD_OFFSET, FileManager::KEEP_DOWNLOAD_LIMIT); } void DownloadManagerCallback::delete_file(FileId file_id) { - send_closure(td_->file_manager_actor_, &FileManager::delete_file, file_id, Promise(), - "download manager callback"); + send_closure_later(td_->file_manager_actor_, &FileManager::delete_file, file_id, Promise(), + "download manager callback"); } FileId DownloadManagerCallback::dup_file_id(FileId file_id) { @@ -98,8 +98,8 @@ std::shared_ptr DownloadManagerCallback::make_dow void send_update(FileId file_id, bool is_paused) const { auto td = G()->td().get_actor_unsafe(); auto file_view = td->file_manager_->get_file_view(file_id); - send_closure(download_manager_, &DownloadManager::update_file_download_state, file_id, - file_view.local_total_size(), file_view.size(), file_view.expected_size(), is_paused); + send_closure_later(download_manager_, &DownloadManager::update_file_download_state, file_id, + file_view.local_total_size(), file_view.size(), file_view.expected_size(), is_paused); } }; return std::make_shared(td, std::move(download_manager));