Add early check for another active channel difference.
This commit is contained in:
parent
cb06833eb1
commit
8f623e8be7
|
@ -34313,6 +34313,11 @@ void MessagesManager::get_channel_difference(DialogId dialog_id, int32 pts, bool
|
||||||
}
|
}
|
||||||
LOG_CHECK(dialog_id.get_type() == DialogType::Channel) << dialog_id << " " << source;
|
LOG_CHECK(dialog_id.get_type() == DialogType::Channel) << dialog_id << " " << source;
|
||||||
|
|
||||||
|
if (active_get_channel_differencies_.count(dialog_id)) {
|
||||||
|
LOG(INFO) << "Skip running channels.getDifference for " << dialog_id << " from " << source
|
||||||
|
<< " because it has already been run";
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto input_channel = td_->contacts_manager_->get_input_channel(dialog_id.get_channel_id());
|
auto input_channel = td_->contacts_manager_->get_input_channel(dialog_id.get_channel_id());
|
||||||
if (input_channel == nullptr) {
|
if (input_channel == nullptr) {
|
||||||
LOG(ERROR) << "Skip running channels.getDifference for " << dialog_id << " from " << source
|
LOG(ERROR) << "Skip running channels.getDifference for " << dialog_id << " from " << source
|
||||||
|
@ -34350,6 +34355,7 @@ void MessagesManager::do_get_channel_difference(DialogId dialog_id, int32 pts, b
|
||||||
<< " because it has already been run";
|
<< " because it has already been run";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// must work even we know nothing about the dialog
|
||||||
|
|
||||||
// can be called multiple times before after_get_channel_difference
|
// can be called multiple times before after_get_channel_difference
|
||||||
const Dialog *d = get_dialog(dialog_id);
|
const Dialog *d = get_dialog(dialog_id);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user