From 829df8d6b94308783342bed5c6bdaa3fb33f96e9 Mon Sep 17 00:00:00 2001 From: Ben Cumming <louncharf@gmail.com> Date: Tue, 4 Apr 2017 12:54:42 +0200 Subject: [PATCH] Feature/time meter (#219) meter_manager correctly detects first checkpoint, which is necessary to ensure that all the timers are synchronized. --- src/profiling/meter_manager.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/profiling/meter_manager.cpp b/src/profiling/meter_manager.cpp index c84754f2..01a01b03 100644 --- a/src/profiling/meter_manager.cpp +++ b/src/profiling/meter_manager.cpp @@ -16,15 +16,14 @@ meter_manager::meter_manager() { }; void meter_manager::checkpoint(std::string name) { - checkpoint_names.push_back(std::move(name)); - // Enforce a global synchronization point the first time that the meters // are used, to ensure that times measured across all domains are // synchronised. - if (meters.size()==0) { + if (checkpoint_names.size()==0) { communication::global_policy::barrier(); } + checkpoint_names.push_back(std::move(name)); for (auto& m: meters) { m->take_reading(); } -- GitLab