Avoid unneeded FileStats copying in main thread.

This commit is contained in:
levlam 2023-03-02 18:54:09 +03:00
parent a2fcf5b8f7
commit aee858338d

View File

@ -261,9 +261,14 @@ void StorageManager::send_stats(FileStats &&stats, int32 dialog_limit, std::vect
auto promise = PromiseCreator::lambda(
[promises = std::move(promises), stats = std::move(stats)](vector<DialogId> dialog_ids) mutable {
stats.apply_dialog_ids(dialog_ids);
for (auto &promise : promises) {
promise.set_value(FileStats(stats));
auto size = promises.size();
size--;
for (size_t i = 0; i < size; i++) {
if (promises[i]) {
promises[i].set_value(FileStats(stats));
}
}
promises[size].set_value(std::move(stats));
});
send_closure(G()->messages_manager(), &MessagesManager::load_dialogs, std::move(dialog_ids), std::move(promise));