From ae862576728f91b98b089e0b027700862bccf1fd Mon Sep 17 00:00:00 2001 From: drotos Date: Thu, 15 Mar 2007 19:57:45 +0000 Subject: [PATCH] implementation of DC_getResultCPUTime() git-svn-id: svn+ssh://cvs.lpds.sztaki.hu/var/lib/svn/szdg/dcapi/trunk@1046 a7169a2c-3604-0410-bc95-c702d8d87f7a --- dcapi/condor/condor_log.cc | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/dcapi/condor/condor_log.cc b/dcapi/condor/condor_log.cc index 4bbe485c0d..b3dffe1c1b 100644 --- a/dcapi/condor/condor_log.cc +++ b/dcapi/condor/condor_log.cc @@ -221,6 +221,37 @@ _DC_wu_exit_code(DC_Workunit *wu, int *res) } +/* Returns the CPU time used for computing the result, in seconds. */ + +double +DC_getResultCPUTime(const DC_Result *result) +{ + DC_Workunit *wu= DC_getResultWU(result); + int i; + time_t start= (time_t)-1, end= (time_t)-1; + + if (wu == NULL) + return(0.0); + for (i= 0; i < wu->condor_events->len; i++) + { + struct _DC_condor_event *ce; + ce= &g_array_index(wu->condor_events, + struct _DC_condor_event, + i); + if (ce->event == ULOG_EXECUTE) + start= ce->time; + if (ce->event == ULOG_JOB_TERMINATED || + ce->event == ULOG_JOB_ABORTED) + end= ce->time; + } + if (start == (time_t)-1 || + end == (time_t)-1) + return(0.0); + + return difftime(end, start); +} + + /* End of condor_log.cc */ /* Local variables: */