summaryrefslogtreecommitdiff
path: root/src/main/DefaultTimers.c
diff options
context:
space:
mode:
authorgoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>1999-10-22 10:13:14 +0000
committergoodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac>1999-10-22 10:13:14 +0000
commitbe202dad37826c03a9503ca8e801d745d04415fb (patch)
treed660d8dd22f0e39c8a61da8da5a6ea3dfc0aa85c /src/main/DefaultTimers.c
parent0bfe852f857e3e134d505fea9f35e74d1dea270f (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.c79
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;
}
/*@@