| 680 | } |
| 681 | |
| 682 | void Coordinator::BackendState::UpdateExecStatsLocked(const unique_lock<mutex>& lock, |
| 683 | const vector<FragmentStats*>& fragment_stats, bool finalize) { |
| 684 | DCHECK(lock.owns_lock() && lock.mutex() == &lock_); |
| 685 | DCHECK(exec_done_) << "May only be called after WaitOnExecRpc() completes."; |
| 686 | for (auto& entry : instance_stats_map_) { |
| 687 | InstanceStats& instance_stats = *entry.second; |
| 688 | // Compute the final exec stats if this was the last update. Maintain the aggregated |
| 689 | // profile on all updates if we are using the V2 profile format, so that we get live |
| 690 | // updates in the profile for longer-running queries. |
| 691 | if (finalize || instance_stats.done_ || FLAGS_gen_experimental_profile) { |
| 692 | instance_stats.UpdateExecStats(fragment_stats, finalize); |
| 693 | } |
| 694 | } |
| 695 | } |
| 696 | |
| 697 | Coordinator::BackendState::CancelResult Coordinator::BackendState::Cancel( |
| 698 | bool fire_and_forget) { |
nothing calls this directly
no test coverage detected