End timing and print to screen if print = true.
89 {
90 auto end_time = std::chrono::steady_clock::now();
91 std::lock_guard<std::mutex> guard(timings_mutex);
92
93 double time_sec = 0.0;
94 double tot_time_sec = 0.0;
95
96
97 auto it = timings.find(name);
98 if (it != timings.end()) {
99 auto start_time = it->second;
100 time_sec = timeInSeconds(start_time, end_time);
101 }
102
103
104 auto it2 = elapsed_time_sec.find(name);
105 if (it2 == elapsed_time_sec.end()) {
106 elapsed_time_sec[name] = time_sec;
107 } else {
108 it2->second += time_sec;
109 tot_time_sec = it2->second;
110 }
111
113 if (tot_time_sec == 0.0) {
114 if (time_sec == 0.0) {
115 std::cout << "Can't print elapsed time. Start time for time-point [" << name
116 << "] was not found\n";
117 } else {
118 std::cout << "Elapsed time for [" << name << "]: " << time_sec << " sec\n";
119 }
120 } else {
121 std::cout << "Current elapsed time for [" << name << "]: " << time_sec
122 << " sec. Total: " << tot_time_sec << " sec\n";
123 }
124 }
125
126 return time_sec;
127 }