summaryrefslogtreecommitdiffstats
path: root/runtime/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/time.c')
-rw-r--r--runtime/time.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/runtime/time.c b/runtime/time.c
index ad7cef9d..58c23e57 100644
--- a/runtime/time.c
+++ b/runtime/time.c
@@ -223,6 +223,7 @@ _stp_kill_time(void)
#endif
_stp_free_percpu(stp_time);
+ stp_time = NULL;
}
}
@@ -232,6 +233,8 @@ _stp_init_time(void)
{
int ret = 0;
+ _stp_kill_time();
+
stp_time = _stp_alloc_percpu(sizeof(stp_time_t));
if (unlikely(stp_time == 0))
return -1;
@@ -263,7 +266,7 @@ _stp_init_time(void)
}
}
#endif
- if (ret)
+ if (ret)
_stp_kill_time();
return ret;
}
@@ -278,6 +281,9 @@ _stp_gettimeofday_ns(void)
stp_time_t *time;
int i = 0;
+ if (!stp_time)
+ return -1;
+
preempt_disable();
time = per_cpu_ptr(stp_time, smp_processor_id());