diff options
author | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-10-22 10:13:14 +0000 |
---|---|---|
committer | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-10-22 10:13:14 +0000 |
commit | be202dad37826c03a9503ca8e801d745d04415fb (patch) | |
tree | d660d8dd22f0e39c8a61da8da5a6ea3dfc0aa85c /src/main/DefaultTimers.c | |
parent | 0bfe852f857e3e134d505fea9f35e74d1dea270f (diff) |
More updates to timer stuff.
Now to get info from a timer, one must create a timer info function:
info = CCTK_TimerCreateInfo();
Get the data
CCTK_TimerGet(timer, info);
Query the fields in the info structure, and then either query another timer
with the same info structure, or destroy the info structure.
CCTK_TimerDestroyInfo(info);
The info structure contains the number of values, and an array of
these values, along with header info, units, data types and values.
I think this is a fairly complete interface, but if a better one can be
found, this may change.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1083 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main/DefaultTimers.c')
-rw-r--r-- | src/main/DefaultTimers.c | 79 |
1 files changed, 63 insertions, 16 deletions
diff --git a/src/main/DefaultTimers.c b/src/main/DefaultTimers.c index 7dafec57..d1b2754f 100644 --- a/src/main/DefaultTimers.c +++ b/src/main/DefaultTimers.c @@ -89,6 +89,9 @@ typedef struct double last; } t_GetTimeOfDayTimer; +static char *GetTimeOfDayHeading = "Data from gettimeofday call"; +static char *GetTimeOfDayUnits = "secs"; + /*@@ @routine CCTKi_TimerGetTimeOfDayCreate @date Wed Oct 20 18:28:19 1999 @@ -132,7 +135,7 @@ void *CCTKi_TimerGetTimeOfDayCreate(int timernum) @endhistory @@*/ -void CCTKi_TimerGetTimeOfDayDestroy(int timernum, t_GetTimeOfDayTimer *data) +void CCTKi_TimerGetTimeOfDayDestroy(int timernum, void *data) { if(data) { @@ -155,11 +158,15 @@ void CCTKi_TimerGetTimeOfDayDestroy(int timernum, t_GetTimeOfDayTimer *data) @endhistory @@*/ -void CCTKi_TimerGetTimeOfDayStart(int timernum, t_GetTimeOfDayTimer *data) +void CCTKi_TimerGetTimeOfDayStart(int timernum, void *idata) { + t_GetTimeOfDayTimer *data; + struct timeval tp; struct timezone tzp; + data = (t_GetTimeOfDayTimer *)idata; + gettimeofday(&tp, &tzp); data->last = tp.tv_sec + (double)tp.tv_usec/1000000.0; @@ -183,11 +190,15 @@ void CCTKi_TimerGetTimeOfDayStart(int timernum, t_GetTimeOfDayTimer *data) @endhistory @@*/ -void CCTKi_TimerGetTimeOfDayStop(int timernum, t_GetTimeOfDayTimer *data) +void CCTKi_TimerGetTimeOfDayStop(int timernum, void *idata) { + t_GetTimeOfDayTimer *data; + struct timeval tp; struct timezone tzp; + data = (t_GetTimeOfDayTimer *)idata; + gettimeofday(&tp, &tzp); data->total += (tp.tv_sec + (double)tp.tv_usec/1000000.0 - data->last); @@ -211,8 +222,11 @@ void CCTKi_TimerGetTimeOfDayStop(int timernum, t_GetTimeOfDayTimer *data) @endhistory @@*/ -void CCTKi_TimerGetTimeOfDayReset(int timernum, t_GetTimeOfDayTimer *data) +void CCTKi_TimerGetTimeOfDayReset(int timernum, void *idata) { + t_GetTimeOfDayTimer *data; + + data = (t_GetTimeOfDayTimer *)idata; data->last = 0; data->total = 0; @@ -233,11 +247,16 @@ void CCTKi_TimerGetTimeOfDayReset(int timernum, t_GetTimeOfDayTimer *data) @endhistory @@*/ -double CCTKi_TimerGetTimeOfDayGet(int timernum, t_GetTimeOfDayTimer *data) +void CCTKi_TimerGetTimeOfDayGet(int timernum, void *idata, t_TimerVal *vals) { + t_GetTimeOfDayTimer *data; - return data->total; + data = (t_GetTimeOfDayTimer *)idata; + vals[0].type = val_double; + vals[0].heading = GetTimeOfDayHeading; + vals[0].units = GetTimeOfDayUnits; + vals[0].val.d = data->total; } /*@@ @@ -254,9 +273,13 @@ double CCTKi_TimerGetTimeOfDayGet(int timernum, t_GetTimeOfDayTimer *data) @endhistory @@*/ -void CCTKi_TimerGetTimeOfDaySet(int timernum, t_GetTimeOfDayTimer *data, double val) +void CCTKi_TimerGetTimeOfDaySet(int timernum, void *idata, t_TimerVal *vals) { - data->total = val; + t_GetTimeOfDayTimer *data; + + data = (t_GetTimeOfDayTimer *)idata; + + data->total = vals[0].val.d; } /*@@ @@ -306,6 +329,9 @@ typedef struct double last; } t_GetrUsageTimer; +static char *GetrUsageHeading = "Data from getrusage call"; +static char *GetrUsageUnits = "secs"; + /*@@ @routine CCTKi_TimerGetrUsageCreate @date Wed Oct 20 18:28:19 1999 @@ -349,7 +375,7 @@ void *CCTKi_TimerGetrUsageCreate(int timernum) @endhistory @@*/ -void CCTKi_TimerGetrUsageDestroy(int timernum, t_GetrUsageTimer *data) +void CCTKi_TimerGetrUsageDestroy(int timernum, void *data) { if(data) { @@ -372,10 +398,14 @@ void CCTKi_TimerGetrUsageDestroy(int timernum, t_GetrUsageTimer *data) @endhistory @@*/ -void CCTKi_TimerGetrUsageStart(int timernum, t_GetrUsageTimer *data) +void CCTKi_TimerGetrUsageStart(int timernum, void *idata) { + t_GetrUsageTimer *data; + struct rusage ru; + data = (t_GetrUsageTimer *)idata; + getrusage(RUSAGE_SELF, &ru); data->last = ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec/1000000.0; @@ -399,10 +429,14 @@ void CCTKi_TimerGetrUsageStart(int timernum, t_GetrUsageTimer *data) @endhistory @@*/ -void CCTKi_TimerGetrUsageStop(int timernum, t_GetrUsageTimer *data) +void CCTKi_TimerGetrUsageStop(int timernum, void *idata) { + t_GetrUsageTimer *data; + struct rusage ru; + data = (t_GetrUsageTimer *)idata; + getrusage(RUSAGE_SELF, &ru); data->total += (ru.ru_utime.tv_sec + (double)ru.ru_utime.tv_usec/1000000.0 - data->last); @@ -426,8 +460,11 @@ void CCTKi_TimerGetrUsageStop(int timernum, t_GetrUsageTimer *data) @endhistory @@*/ -void CCTKi_TimerGetrUsageReset(int timernum, t_GetrUsageTimer *data) +void CCTKi_TimerGetrUsageReset(int timernum, void *idata) { + t_GetrUsageTimer *data; + + data = (t_GetrUsageTimer *)idata; data->last = 0; data->total = 0; @@ -448,10 +485,16 @@ void CCTKi_TimerGetrUsageReset(int timernum, t_GetrUsageTimer *data) @endhistory @@*/ -double CCTKi_TimerGetrUsageGet(int timernum, t_GetrUsageTimer *data) +void CCTKi_TimerGetrUsageGet(int timernum, void *idata, t_TimerVal *vals) { + t_GetrUsageTimer *data; + + data = (t_GetrUsageTimer *)idata; - return data->total; + vals[0].type = val_double; + vals[0].heading = GetrUsageHeading; + vals[0].units = GetrUsageUnits; + vals[0].val.d = data->total; } @@ -469,9 +512,13 @@ double CCTKi_TimerGetrUsageGet(int timernum, t_GetrUsageTimer *data) @endhistory @@*/ -void CCTKi_TimerGetrUsageSet(int timernum, t_GetrUsageTimer *data, double val) +void CCTKi_TimerGetrUsageSet(int timernum, void *idata, t_TimerVal *vals) { - data->total = val; + t_GetrUsageTimer *data; + + data = (t_GetrUsageTimer *)idata; + + data->total = vals[0].val.d; } /*@@ |