Skip to content

Commit

Permalink
Update MessagesManager
Browse files Browse the repository at this point in the history
  • Loading branch information
cavallium committed Apr 5, 2021
1 parent 1928c14 commit 70e15f4
Showing 1 changed file with 35 additions and 9 deletions.
44 changes: 35 additions & 9 deletions td/telegram/MessagesManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6927,11 +6927,17 @@ void MessagesManager::on_update_channel_too_long(tl_object_ptr<telegram_api::upd

if (d != nullptr) {
if (update_pts == 0 || update_pts > d->pts) {
get_channel_difference(dialog_id, d->pts, true, "on_update_channel_too_long 1");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, d->pts, true, enable_pull_based_backpressure,
"on_update_channel_too_long 1");
}
} else {
if (force_apply) {
get_channel_difference(dialog_id, -1, true, "on_update_channel_too_long 2");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, -1, true, enable_pull_based_backpressure,
"on_update_channel_too_long 2");
} else {
td_->updates_manager_->schedule_get_difference("on_update_channel_too_long 3");
}
Expand Down Expand Up @@ -7006,7 +7012,10 @@ void MessagesManager::update_message_interaction_info(FullMessageId full_message
LOG(INFO) << "Ignore message interaction info about unknown " << full_message_id;
if (!message_id.is_scheduled() && message_id > d->last_new_message_id &&
dialog_id.get_type() == DialogType::Channel) {
get_channel_difference(dialog_id, d->pts, true, "update_message_interaction_info");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, d->pts, true, enable_pull_based_backpressure,
"update_message_interaction_info");
}
return;
}
Expand Down Expand Up @@ -7578,7 +7587,9 @@ void MessagesManager::add_pending_channel_update(DialogId dialog_id, tl_object_p
<< ", update is from " << source << ": " << oneline(to_string(update));
last_channel_pts_jump_warning_time_ = now;
}
get_channel_difference(dialog_id, old_pts, true, "add_pending_channel_update old");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, old_pts, true, enable_pull_based_backpressure, "old");
}

if (update->get_id() == telegram_api::updateNewChannelMessage::ID) {
Expand Down Expand Up @@ -7626,7 +7637,10 @@ void MessagesManager::add_pending_channel_update(DialogId dialog_id, tl_object_p
d->postponed_channel_updates.emplace(new_pts,
PendingPtsUpdate(std::move(update), new_pts, pts_count, std::move(promise)));

get_channel_difference(dialog_id, old_pts, true, "add_pending_channel_update pts mismatch");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, old_pts, true, enable_pull_based_backpressure,
"add_pending_channel_update pts mismatch");
return;
}
}
Expand Down Expand Up @@ -11438,7 +11452,10 @@ void MessagesManager::read_channel_message_content_from_updates(Dialog *d, Messa
if (m != nullptr) {
read_message_content(d, m, false, "read_channel_message_content_from_updates");
} else if (message_id > d->last_new_message_id) {
get_channel_difference(d->dialog_id, d->pts, true, "read_channel_message_content_from_updates");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(d->dialog_id, d->pts, true, enable_pull_based_backpressure,
"read_channel_message_content_from_updates");
}
}

Expand Down Expand Up @@ -29056,7 +29073,10 @@ void MessagesManager::check_send_message_result(int64 random_id, DialogId dialog
return;
}
if (dialog_id.get_type() == DialogType::Channel) {
get_channel_difference(dialog_id, d->pts, true, "check_send_message_result");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, d->pts, true, enable_pull_based_backpressure,
"check_send_message_result");
} else {
td_->updates_manager_->schedule_get_difference("check_send_message_result");
}
Expand Down Expand Up @@ -35768,7 +35788,10 @@ void MessagesManager::run_after_channel_difference(DialogId dialog_id, Promise<U

run_after_get_channel_difference_[dialog_id].push_back(std::move(promise));

get_channel_difference(dialog_id, d->pts, true, "run_after_channel_difference");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, d->pts, true, enable_pull_based_backpressure,
"run_after_channel_difference");
}

bool MessagesManager::running_get_channel_difference(DialogId dialog_id) const {
Expand All @@ -35786,7 +35809,10 @@ void MessagesManager::on_channel_get_difference_timeout(DialogId dialog_id) {
LOG(ERROR) << "Unknown dialog " << dialog_id;
return;
}
get_channel_difference(dialog_id, d->pts, true, "on_channel_get_difference_timeout");
auto enable_pull_based_backpressure
= G()->shared_config().get_option_boolean("enable_pull_based_backpressure", false);
get_channel_difference_delayed(dialog_id, d->pts, true, enable_pull_based_backpressure,
"on_channel_get_difference_timeout");
}

class MessagesManager::GetChannelDifferenceLogEvent {
Expand Down

0 comments on commit 70e15f4

Please sign in to comment.