aboutsummaryrefslogtreecommitdiff
path: root/src/common/util.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-12-18 17:19:04 +0000
committerNick Mathewson <nickm@torproject.org>2008-12-18 17:19:04 +0000
commitbf80e2df3fe48f81c69bb68887376b02ab247e5f (patch)
treed95e835992abf9a2bad5954042ea38e5a6a9df3c /src/common/util.h
parentb91335117f9faf84001acc65859886e4ddc267a5 (diff)
downloadtor-bf80e2df3fe48f81c69bb68887376b02ab247e5f.tar.gz
tor-bf80e2df3fe48f81c69bb68887376b02ab247e5f.zip
Replace calls to time(NULL) that occur on the order of once per read, one per write, or once per cell with calls to a function that looks at a cached value of time. This is tricksy to benchmark, since it will only help on systems where time() is a syscall and syscalls are relatively slow.
svn:r17690
Diffstat (limited to 'src/common/util.h')
-rw-r--r--src/common/util.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/common/util.h b/src/common/util.h
index e8d78c9847..029cad9e3f 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -213,6 +213,16 @@ void format_iso_time(char *buf, time_t t);
int parse_iso_time(const char *buf, time_t *t);
int parse_http_time(const char *buf, struct tm *tm);
int format_time_interval(char *out, size_t out_len, long interval);
+
+/* Cached time */
+#ifdef TIME_IS_FAST
+#define approx_time() time(NULL)
+#define update_approx_time(t) STMT_NIL
+#else
+time_t approx_time(void);
+void update_approx_time(time_t now);
+#endif
+
/* Fuzzy time. */
void ftime_set_maximum_sloppiness(int seconds);
void ftime_set_estimated_skew(int seconds);