diff --git a/changes/bug23537 b/changes/bug23537 new file mode 100644 index 0000000000..93072a3b4f --- /dev/null +++ b/changes/bug23537 @@ -0,0 +1,4 @@ + o Minor bugfixes (scheduler): + - When switching schedulers due to a consensus change, we didn't give the new + scheduler a chance to react to the consensus. Fix that. Fixes bug 23537; + bugfix on 0.3.2.1-alpha diff --git a/src/or/scheduler.c b/src/or/scheduler.c index ca3cafd9af..64628e4c73 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -371,12 +371,13 @@ void scheduler_notify_networkstatus_changed(const networkstatus_t *old_c, const networkstatus_t *new_c) { + /* Maybe the consensus param made us change the scheduler. */ + set_scheduler(); + /* Then tell the (possibly new) scheduler that we have a new consensus */ if (the_scheduler->on_new_consensus) { the_scheduler->on_new_consensus(old_c, new_c); } - /* Maybe the consensus param made us change the scheduler. */ - set_scheduler(); } /*