void TaskTimer::popTask() { #ifdef _OPENMP TaskStack &stack = thread_stacks[omp_get_thread_num()]; #endif // it is forbidden to pop Root assert(stack.size()>1); stack.back()->stop(); stack.pop_back(); stack.back()->resume(); }
void TaskTimer::pushTask(const char *task) { #ifdef _OPENMP TaskStack &stack = thread_stacks[omp_get_thread_num()]; #endif if (stack.size() == 0) stack.push_back(new TaskTimer("Other/Idle")); stack.push_back(stack.back()->setTask(task)); }