aboutsummaryrefslogtreecommitdiff
path: root/src/feature/hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/feature/hs')
-rw-r--r--src/feature/hs/hs_circuit.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/feature/hs/hs_circuit.c b/src/feature/hs/hs_circuit.c
index c3f2fbfc1e..ccd6711041 100644
--- a/src/feature/hs/hs_circuit.c
+++ b/src/feature/hs/hs_circuit.c
@@ -767,7 +767,9 @@ handle_rend_pqueue_cb(mainloop_event_t *ev, void *arg)
in_flight,
smartlist_len(pow_state->rend_request_pqueue));
- /* Process rendezvous request until the maximum per mainloop run. */
+ /* Process only one rend request per callback, so that this work will not
+ * be prioritized over other event loop callbacks. We may need to retry
+ * in order to find one request that's still viable. */
while (smartlist_len(pow_state->rend_request_pqueue) > 0) {
/* first, peek at the top result to see if we want to pop it */
@@ -827,11 +829,7 @@ handle_rend_pqueue_cb(mainloop_event_t *ev, void *arg)
++pow_state->rend_handled;
++in_flight;
-
- if (pow_state->using_pqueue_bucket &&
- token_bucket_ctr_get(&pow_state->pqueue_bucket) < 1) {
- break;
- }
+ break;
}
/* If there are still some pending rendezvous circuits in the pqueue then