]> source.dussan.org Git - rspamd.git/commitdiff
Add portable get_ticks function.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 Mar 2015 18:16:28 +0000 (18:16 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 5 Mar 2015 18:16:28 +0000 (18:16 +0000)
src/libutil/util.c
src/libutil/util.h

index b2435dc8d5014f620b763e4ff9b658430984eea6..2a64b9c10615e6fab352ee92af61eb2033fcdb5e 100644 (file)
 #include <readpassphrase.h>
 #endif
 
+#ifdef __APPLE__
+#include <mach/mach_time.h>
+#endif
+
 /* Check log messages intensity once per minute */
 #define CHECK_TIME 60
 /* More than 2 log messages per second */
@@ -2233,6 +2237,23 @@ rspamd_decode_base32 (const gchar *in, gsize inlen, gsize *outlen)
        return res;
 }
 
+gdouble
+rspamd_get_ticks (void)
+{
+       gdouble res;
+
+#ifdef __APPLE__
+       res = mach_absolute_time () / 1000000000.;
+#else
+       struct timespec ts;
+       clock_gettime (CLOCK_MONOTONIC, &ts);
+
+       res = (double)ts.tv_sec + ts.tv_nsec / 1000000000.;
+#endif
+
+       return res;
+}
+
 /* Required for tweetnacl */
 void
 randombytes (guchar *buf, guint64 len)
index 9e90b1089e0e5cac4cced795736ee4155c7016b5..8e3fe090f38514e89f091359f09dedc24d09ea0b 100644 (file)
@@ -435,4 +435,10 @@ gchar * rspamd_encode_base32 (const guchar *in, gsize inlen);
  */
 guchar* rspamd_decode_base32 (const gchar *in, gsize inlen, gsize *outlen);
 
+/**
+ * Portably return the current clock ticks as seconds
+ * @return
+ */
+gdouble rspamd_get_ticks (void);
+
 #endif