summaryrefslogtreecommitdiff
path: root/src/misc.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-03-18 11:13:46 +0000
committerSadie Powell <sadie@witchery.services>2024-03-18 11:27:10 +0000
commitcb3848b7dbb7eeb809898b2fccab3ff2f0696e6e (patch)
treed40832e33a9918965869902f517837e90e752c76 /src/misc.cpp
parent753119c4a16f6dafacbeb3d98fe72133badca949 (diff)
Use clock_gettime if it is available.
Diffstat (limited to 'src/misc.cpp')
-rw-r--r--src/misc.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/misc.cpp b/src/misc.cpp
index d2c05da12..1984477f7 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -785,3 +785,26 @@ size_t Anope::Distance(const Anope::string &s1, const Anope::string &s2)
}
return costs[s2.length()];
}
+
+void Anope::UpdateTime()
+{
+#ifdef _WIN32
+ SYSTEMTIME st;
+ GetSystemTime(&st);
+
+ CurTime = time(nullptr);
+ CurTimeNs = st.wMilliseconds;
+#elif HAVE_CLOCK_GETTIME
+ struct timespec ts;
+ clock_gettime(CLOCK_REALTIME, &ts);
+
+ CurTime = ts.tv_sec;
+ CurTimeNs = ts.tv_nsec;
+#else
+ struct timeval tv;
+ gettimeofday(&tv, nullptr);
+
+ CurTime = tv.tv_sec;
+ CurTimeNs = tv.tv_usec * 1000;
+#endif
+}