@@ -837,28 +837,34 @@ bool ValidateQuery::extract_collated_data() {
837837 }
838838 if (merge_collated_data_enabled_) {
839839 LOG (INFO) << " merge_collated_data = true" ;
840- LOG (DEBUG) << " sending add_block_candidate() to CollatedDataMerger" ;
841- td::actor::send_closure (collated_data_merger_, &CollatedDataMerger::add_block_candidate, id_, block_root_,
842- collated_roots_);
843840 if (optimistic_prev_block_.not_null ()) {
844841 LOG (DEBUG) << " sending add_block_candidate() for optimistic prev block to CollatedDataMerger" ;
845842 td::actor::send_closure (collated_data_merger_, &CollatedDataMerger::add_block_candidate_data, id_,
846- optimistic_prev_block_->data (), optimistic_prev_collated_data_.clone ());
843+ optimistic_prev_block_->data (), optimistic_prev_collated_data_.clone (),
844+ [](td::Result<td::RealCpuTimer::Time>) {});
847845 }
846+ LOG (DEBUG) << " sending add_block_candidate() to CollatedDataMerger" ;
847+ td::actor::send_closure (collated_data_merger_, &CollatedDataMerger::add_block_candidate, id_, block_root_,
848+ collated_roots_, [SelfId = actor_id (this ), this ](td::Result<td::RealCpuTimer::Time> R) {
849+ if (R.is_error ()) {
850+ return ;
851+ }
852+ td::actor::send_lambda (SelfId, [this , time = R.move_as_ok ()]() {
853+ stats_.work_time .ext_collated_data_merge += time;
854+ });
855+ });
848856 std::vector<vm::CellHash> hashes = collated_data_root_state_hashes_;
849857 hashes.insert (hashes.end (), collated_data_root_dict_hashes_.begin (), collated_data_root_dict_hashes_.end ());
850- if (!hashes.empty ()) {
851- LOG (DEBUG) << " sending get_cells to CollatedDataMerger" ;
852- ++pending;
853- td::actor::send_closure_later (
854- collated_data_merger_, &CollatedDataMerger::get_cells, std::move (hashes),
855- [self = get_self (), token = perf_log_.start_action (" CollatedDataMerger::get_cells" )](
856- td::Result<td::HashMap<vm::CellHash, Ref<vm::Cell>>> res) mutable {
857- LOG (DEBUG) << " got answer to CollatedDataMerger::get_cells" ;
858- td::actor::send_closure_later (std::move (self), &ValidateQuery::process_merged_collated_roots,
859- std::move (res), std::move (token));
860- });
861- }
858+ LOG (DEBUG) << " sending get_cells to CollatedDataMerger" ;
859+ ++pending;
860+ td::actor::send_closure_later (
861+ collated_data_merger_, &CollatedDataMerger::get_cells, std::move (hashes),
862+ [self = get_self (), token = perf_log_.start_action (" CollatedDataMerger::get_cells" )](
863+ td::Result<td::HashMap<vm::CellHash, Ref<vm::Cell>>> res) mutable {
864+ LOG (DEBUG) << " got answer to CollatedDataMerger::get_cells" ;
865+ td::actor::send_closure_later (std::move (self), &ValidateQuery::process_merged_collated_roots,
866+ std::move (res), std::move (token));
867+ });
862868 }
863869 return true ;
864870}
0 commit comments