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