core/or: Lift slow call out of loop, #33977

This commit is contained in:
Alex Xu (Hello71) 2020-04-23 13:24:08 -04:00 committed by David Goulet
parent f96b6ccee1
commit 42dfcd0ae3
2 changed files with 6 additions and 1 deletions

4
changes/bug33977 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfix (refactoring):
- Lift circuit_build_times_disabled out of circuit_expire_building loop to
save CPU time with many circuits open. Fixes bug 33977; bugfix on
0.3.5.9.

View File

@ -548,9 +548,10 @@ circuit_expire_building(void)
MAX(get_circuit_build_close_time_ms()*2 + 1000,
options->SocksTimeout * 1000));
bool fixed_time = circuit_build_times_disabled(get_options());
SMARTLIST_FOREACH_BEGIN(circuit_get_global_list(), circuit_t *,victim) {
struct timeval cutoff;
bool fixed_time = circuit_build_times_disabled(get_options());
if (!CIRCUIT_IS_ORIGIN(victim) || /* didn't originate here */
victim->marked_for_close) /* don't mess with marked circs */