From d675ff4684242402af02908e431ed5e9fe045320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20=C3=81vila=20de=20Esp=C3=ADndola?= Date: Thu, 17 Dec 2009 16:02:03 +0000 Subject: 2009-12-17 Rafael Avila de Espindola * Makefile.am (CCFILES): Add timer.cc. (HFILES): Add timer.h. * configure.ac: Check for sysconf and times. * main.cc: include timer.h. (main): Use Timer instead of get_run_time. * timer.cc: New. * timer.h: New. * workqueue.cc: include timer.h. (Workqueue::find_and_run_task): Report user, sys and wall time. * Makefile.in: Regenerate. * config.in: Regenerate. * configure: Regenerate. --- gold/workqueue.cc | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'gold/workqueue.cc') diff --git a/gold/workqueue.cc b/gold/workqueue.cc index 18c3900..c713dca 100644 --- a/gold/workqueue.cc +++ b/gold/workqueue.cc @@ -24,6 +24,7 @@ #include "debug.h" #include "options.h" +#include "timer.h" #include "workqueue.h" #include "workqueue-internal.h" @@ -311,10 +312,24 @@ Workqueue::find_and_run_task(int thread_number) gold_debug(DEBUG_TASK, "%3d running task %s", thread_number, t->name().c_str()); + Timer timer; + if (is_debugging_enabled(DEBUG_TASK)) + timer.start(); + t->run(this); - gold_debug(DEBUG_TASK, "%3d completed task %s", thread_number, - t->name().c_str()); + if (is_debugging_enabled(DEBUG_TASK)) + { + Timer::TimeStats elapsed = timer.get_elapsed_time(); + + gold_debug(DEBUG_TASK, + "%3d completed task %s " + "(user: %ld.%06ld sys: %ld.%06ld wall: %ld.%06ld)", + thread_number, t->name().c_str(), + elapsed.user / 1000, (elapsed.user % 1000) * 1000, + elapsed.sys / 1000, (elapsed.user % 1000) * 1000, + elapsed.wall / 1000, (elapsed.wall % 1000) * 1000); + } Task* next; { -- cgit v1.1