From a46bba20a551acbd450a78bd48680f2748f000a9 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Fri, 29 Sep 2017 22:57:29 -0700 Subject: [PATCH] ircd: Fix date/time related. --- include/ircd/date.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/include/ircd/date.h b/include/ircd/date.h index 0186946e3..179e88306 100644 --- a/include/ircd/date.h +++ b/include/ircd/date.h @@ -32,6 +32,7 @@ namespace ircd using std::chrono::duration_cast; using std::chrono::system_clock; using std::chrono::steady_clock; + using std::chrono::high_resolution_clock; using std::chrono::time_point; using microtime_t = std::pair; @@ -46,14 +47,33 @@ namespace ircd template<> steady_point now(); template<> system_point now(); + template time_t &time(time_t &ref); template time_t time(); + template time_t time(time_t *const &ptr); +} + +template +time_t +ircd::time(time_t *const &ptr) +{ + time_t buf, &ret{ptr? *ptr : buf}; + return time(ret); } template time_t ircd::time() { - return now().count(); + time_t ret; + return time(ret); +} + +template +time_t & +ircd::time(time_t &ref) +{ + ref = duration_cast(system_clock::now().time_since_epoch()).count(); + return ref; } template<> inline