diff options
Diffstat (limited to 'libdimension')
-rw-r--r-- | libdimension/dimension/timer.h | 2 | ||||
-rw-r--r-- | libdimension/timer.c | 5 |
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); + } } |