MCPcopy Create free account
hub / github.com/BYVoid/OpenCC / RunInThread

Function RunInThread

deps/google-benchmark/src/benchmark_runner.cc:118–141  ·  view source on GitHub ↗

Execute one thread of benchmark b for the specified number of iterations. Adds the stats collected for the thread into manager->results.

Source from the content-addressed store, hash-verified

116// Execute one thread of benchmark b for the specified number of iterations.
117// Adds the stats collected for the thread into manager->results.
118void RunInThread(const BenchmarkInstance* b, IterationCount iters,
119 int thread_id, ThreadManager* manager,
120 PerfCountersMeasurement* perf_counters_measurement) {
121 internal::ThreadTimer timer(
122 b->measure_process_cpu_time()
123 ? internal::ThreadTimer::CreateProcessCpuTime()
124 : internal::ThreadTimer::Create());
125
126 State st =
127 b->Run(iters, thread_id, &timer, manager, perf_counters_measurement);
128 BM_CHECK(st.error_occurred() || st.iterations() >= st.max_iterations)
129 << "Benchmark returned before State::KeepRunning() returned false!";
130 {
131 MutexLock l(manager->GetBenchmarkMutex());
132 internal::ThreadManager::Result& results = manager->results;
133 results.iterations += st.iterations();
134 results.cpu_time_used += timer.cpu_time_used();
135 results.real_time_used += timer.real_time_used();
136 results.manual_time_used += timer.manual_time_used();
137 results.complexity_n += st.complexity_length_n();
138 internal::Increment(&results.counters, st.counters);
139 }
140 manager->NotifyThreadComplete();
141}
142
143} // end namespace
144

Callers 2

DoNIterationsMethod · 0.85
DoOneRepetitionMethod · 0.85

Calls 7

IncrementFunction · 0.85
iterationsMethod · 0.80
cpu_time_usedMethod · 0.80
real_time_usedMethod · 0.80
manual_time_usedMethod · 0.80
RunMethod · 0.45

Tested by

no test coverage detected