summaryrefslogtreecommitdiffstats
path: root/libdimension
diff options
context:
space:
mode:
Diffstat (limited to 'libdimension')
-rw-r--r--libdimension/dimension/timer.h2
-rw-r--r--libdimension/timer.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/libdimension/dimension/timer.h b/libdimension/dimension/timer.h
index 0a1fde9..bd72a90 100644
--- a/libdimension/dimension/timer.h
+++ b/libdimension/dimension/timer.h
@@ -28,6 +28,8 @@ typedef struct dmnsn_timer {
double real; /**< Wall-clock time. */
double user; /**< Time spent executing. */
double system; /**< Time spent waiting for the system. */
+
+ dmnsn_refcount refcount; /**< @internal Reference count. */
} dmnsn_timer;
/** A standard format string for timers. */
diff --git a/libdimension/timer.c b/libdimension/timer.c
index 0e120ce..ad0fd9b 100644
--- a/libdimension/timer.c
+++ b/libdimension/timer.c
@@ -30,6 +30,7 @@ dmnsn_new_timer(void)
{
dmnsn_timer *timer = dmnsn_malloc(sizeof(dmnsn_timer));
dmnsn_get_times(timer);
+ timer->refcount = 1;
return timer;
}
@@ -46,5 +47,7 @@ dmnsn_complete_timer(dmnsn_timer *timer)
void
dmnsn_delete_timer(dmnsn_timer *timer)
{
- dmnsn_free(timer);
+ if (DMNSN_DECREF(timer)) {
+ dmnsn_free(timer);
+ }
}