void GeoTransactionExecutor::SendGeoMessages()

in platform/consensus/execution/geo_transaction_executor.cpp [50:73]


void GeoTransactionExecutor::SendGeoMessages() {
  std::vector<std::unique_ptr<Request>> messages;
  while (!IsStop()) {
    auto message = queue_.Pop(100);
    if (message != nullptr) {
      messages.push_back(std::move(message));
      while (!IsStop() && messages.size() < batch_size_) {
        auto message = queue_.Pop(0);
        if (message == nullptr) {
          break;
        }
        messages.push_back(std::move(message));
        if (messages.size() >= batch_size_) {
          break;
        }
      }
    }
    if (messages.size() > 0) {
      SendBatchGeoMessage(messages);
      messages.clear();
    }
  }
  return;
}