mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +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
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);
|
||||
}
|
||||
|
||||
#if defined(LIBEVENT_VERSION_NUMBER) && \
|
||||
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));
|
||||
}
|
||||
|
||||
#if defined(TOR_UNIT_TESTS)
|
||||
/** For testing: called post-fork to make libevent reinitialize
|
||||
* kernel structures. */
|
||||
void
|
||||
@ -548,5 +504,4 @@ tor_libevent_postfork(void)
|
||||
tor_assert(r == 0);
|
||||
}
|
||||
#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);
|
||||
|
||||
void tor_gettimeofday_cached(struct timeval *tv);
|
||||
void tor_gettimeofday_cache_clear(void);
|
||||
#ifdef TOR_UNIT_TESTS
|
||||
void tor_gettimeofday_cache_set(const struct timeval *tv);
|
||||
void tor_libevent_postfork(void);
|
||||
#endif
|
||||
|
||||
|
@ -3440,7 +3440,6 @@ connection_handle_read(connection_t *conn)
|
||||
{
|
||||
int res;
|
||||
|
||||
tor_gettimeofday_cache_clear();
|
||||
res = connection_handle_read_impl(conn);
|
||||
return res;
|
||||
}
|
||||
@ -3983,7 +3982,6 @@ int
|
||||
connection_handle_write(connection_t *conn, int force)
|
||||
{
|
||||
int res;
|
||||
tor_gettimeofday_cache_clear();
|
||||
conn->in_connection_handle_write = 1;
|
||||
res = connection_handle_write_impl(conn, force);
|
||||
conn->in_connection_handle_write = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user