in platform/consensus/execution/transaction_executor.cpp [170:198]
void TransactionExecutor::OrderMessage() {
while (!IsStop()) {
auto message = commit_queue_.Pop();
if (message != nullptr) {
global_stats_->IncExecute();
uint64_t seq = message->seq();
if (next_execute_seq_ > seq) {
// LOG(INFO) << "request seq:" << seq << " has been executed"
// << " next seq:" << next_execute_seq_;
continue;
}
AddNewData(std::move(message));
}
while (!IsStop()) {
std::unique_ptr<Request> message = GetNextData();
if (message == nullptr) {
break;
}
execute_queue_.Push(std::move(message));
next_execute_seq_++;
if (seq_update_notify_func_) {
seq_update_notify_func_(next_execute_seq_);
}
}
}
return;
}