Files
kumomta/crates
Wez Furlong 2647d0286a queue: spawn reinsertion per-queue
If you have a queue that throttles that rate at which messages can move
into the ready queue, when message(s) for that queue are ticked out of
the singleton wheel, they can block the reinsertion of subsequently
ticked messages because the insertion call is "blocking" (puts back
pressure on) the caller.

That's fine in the hot path where the insertion is coupled with the
incoming protocol session, but for the wheel tick we need to guarantee
that we're making progress with the rest of the messages.

This commit breaks apart the ticked batch by queue and spawns a new
tokio task per queue.  That way a throttle on any given queue will only
affect the rest of the messages in that particular queue (which it will
do anyway), and not prevent the other queues from making progress.
2025-04-14 15:57:41 -07:00
..
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2024-12-07 09:17:54 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:07 -07:00
2024-12-07 09:17:54 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-14 15:57:41 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:07 -07:00
2024-12-07 09:17:54 -07:00
2024-12-07 09:17:54 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:07 -07:00
2024-12-07 09:17:54 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:12 -07:00
2024-11-13 13:50:27 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:12 -07:00
2025-04-09 10:26:07 -07:00
2025-04-09 10:26:07 -07:00