mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 22:58:50 +01:00
Remove the "cached gettimeofday" logic.
Previously were using this value to have a cheap highish-resolution timer. But we were only using it in one place, and current dogma is to use monotime_coarse_t for this kind of thing.
This commit is contained in:
parent
5e395ba2c2
commit
7cbc44eeb1
4 changed files with 6 additions and 51 deletions
5
changes/ticket25927.2
Normal file
5
changes/ticket25927.2
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
o Code simplification and refactoring:
|
||||||
|
- Remove our previous logic for "cached gettimeofday()" -- our coarse
|
||||||
|
monotonic timers are fast enough for this purpose, and far less
|
||||||
|
error-prone. Implements part of ticket 25927.
|
||||||
|
|
|
@ -494,51 +494,7 @@ tor_libevent_exit_loop_after_callback(struct event_base *base)
|
||||||
event_base_loopbreak(base);
|
event_base_loopbreak(base);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(LIBEVENT_VERSION_NUMBER) && \
|
#if defined(TOR_UNIT_TESTS)
|
||||||
LIBEVENT_VERSION_NUMBER >= V(2,1,1) && \
|
|
||||||
!defined(TOR_UNIT_TESTS)
|
|
||||||
void
|
|
||||||
tor_gettimeofday_cached(struct timeval *tv)
|
|
||||||
{
|
|
||||||
event_base_gettimeofday_cached(the_event_base, tv);
|
|
||||||
}
|
|
||||||
void
|
|
||||||
tor_gettimeofday_cache_clear(void)
|
|
||||||
{
|
|
||||||
event_base_update_cache_time(the_event_base);
|
|
||||||
}
|
|
||||||
#else /* !(defined(LIBEVENT_VERSION_NUMBER) && ...) */
|
|
||||||
/** Cache the current hi-res time; the cache gets reset when libevent
|
|
||||||
* calls us. */
|
|
||||||
static struct timeval cached_time_hires = {0, 0};
|
|
||||||
|
|
||||||
/** Return a fairly recent view of the current time. */
|
|
||||||
void
|
|
||||||
tor_gettimeofday_cached(struct timeval *tv)
|
|
||||||
{
|
|
||||||
if (cached_time_hires.tv_sec == 0) {
|
|
||||||
tor_gettimeofday(&cached_time_hires);
|
|
||||||
}
|
|
||||||
*tv = cached_time_hires;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Reset the cached view of the current time, so that the next time we try
|
|
||||||
* to learn it, we will get an up-to-date value. */
|
|
||||||
void
|
|
||||||
tor_gettimeofday_cache_clear(void)
|
|
||||||
{
|
|
||||||
cached_time_hires.tv_sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef TOR_UNIT_TESTS
|
|
||||||
/** For testing: force-update the cached time to a given value. */
|
|
||||||
void
|
|
||||||
tor_gettimeofday_cache_set(const struct timeval *tv)
|
|
||||||
{
|
|
||||||
tor_assert(tv);
|
|
||||||
memcpy(&cached_time_hires, tv, sizeof(*tv));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** For testing: called post-fork to make libevent reinitialize
|
/** For testing: called post-fork to make libevent reinitialize
|
||||||
* kernel structures. */
|
* kernel structures. */
|
||||||
void
|
void
|
||||||
|
@ -548,5 +504,4 @@ tor_libevent_postfork(void)
|
||||||
tor_assert(r == 0);
|
tor_assert(r == 0);
|
||||||
}
|
}
|
||||||
#endif /* defined(TOR_UNIT_TESTS) */
|
#endif /* defined(TOR_UNIT_TESTS) */
|
||||||
#endif /* defined(LIBEVENT_VERSION_NUMBER) && ... */
|
|
||||||
|
|
||||||
|
|
|
@ -68,10 +68,7 @@ void tor_libevent_free_all(void);
|
||||||
|
|
||||||
int tor_init_libevent_rng(void);
|
int tor_init_libevent_rng(void);
|
||||||
|
|
||||||
void tor_gettimeofday_cached(struct timeval *tv);
|
|
||||||
void tor_gettimeofday_cache_clear(void);
|
|
||||||
#ifdef TOR_UNIT_TESTS
|
#ifdef TOR_UNIT_TESTS
|
||||||
void tor_gettimeofday_cache_set(const struct timeval *tv);
|
|
||||||
void tor_libevent_postfork(void);
|
void tor_libevent_postfork(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -3440,7 +3440,6 @@ connection_handle_read(connection_t *conn)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
tor_gettimeofday_cache_clear();
|
|
||||||
res = connection_handle_read_impl(conn);
|
res = connection_handle_read_impl(conn);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -3983,7 +3982,6 @@ int
|
||||||
connection_handle_write(connection_t *conn, int force)
|
connection_handle_write(connection_t *conn, int force)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
tor_gettimeofday_cache_clear();
|
|
||||||
conn->in_connection_handle_write = 1;
|
conn->in_connection_handle_write = 1;
|
||||||
res = connection_handle_write_impl(conn, force);
|
res = connection_handle_write_impl(conn, force);
|
||||||
conn->in_connection_handle_write = 0;
|
conn->in_connection_handle_write = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue