diff options
author | David Goulet <dgoulet@torproject.org> | 2017-09-14 14:22:22 -0400 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2017-09-15 11:40:59 -0400 |
commit | 14cd8bdd4ba6f4c5946ecd9877c77c9ba305bbe8 (patch) | |
tree | 1c76e5bfe124d06d7e68582b7f644ad843066c83 /src/or/scheduler.c | |
parent | 84d18f70f3400df3e9c3b3c47288e82cd9160f6e (diff) | |
download | tor-14cd8bdd4ba6f4c5946ecd9877c77c9ba305bbe8.tar.gz tor-14cd8bdd4ba6f4c5946ecd9877c77c9ba305bbe8.zip |
sched: Don't expose the global scheduler libevent object
Instead, add wrappers to do the needed action the different scheduler needs
with the libevent object.
Signed-off-by: David Goulet <dgoulet@torproject.org>
Diffstat (limited to 'src/or/scheduler.c')
-rw-r--r-- | src/or/scheduler.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/or/scheduler.c b/src/or/scheduler.c index 39427b7827..8d2dfac088 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -214,13 +214,6 @@ get_channels_pending(void) return channels_pending; } -/* Return our libevent scheduler event. */ -struct event * -get_run_sched_ev(void) -{ - return run_sched_ev; -} - /* Comparison function to use when sorting pending channels */ MOCK_IMPL(int, scheduler_compare_channels, (const void *c1_v, const void *c2_v)) @@ -496,6 +489,24 @@ scheduler_channel_has_waiting_cells,(channel_t *chan)) } } +/* Add the scheduler event to the set of pending events with next_run being + * the time up to libevent should wait before triggering the event. */ +void +scheduler_ev_add(const struct timeval *next_run) +{ + tor_assert(run_sched_ev); + tor_assert(next_run); + event_add(run_sched_ev, next_run); +} + +/* Make the scheduler event active with the given flags. */ +void +scheduler_ev_active(int flags) +{ + tor_assert(run_sched_ev); + event_active(run_sched_ev, flags, 1); +} + /* * Initialize everything scheduling-related from config.c. Note this is only * called when Tor is starting up, while scheduler_t->init() is called both |