MINOR: checks: also consider the thread's queue for rebalancing

Let's also check for other threads when the current one is queueing,
let's not wait for the load to be high. Now this totally eliminates
differences between threads.
This commit is contained in:
Willy Tarreau 2023-08-31 17:51:00 +02:00
parent 844a3bc25b
commit b0031d9679

View File

@ -1205,7 +1205,8 @@ struct task *process_chk_conn(struct task *t, void *context, unsigned int state)
* other thread.
*/
while (attempts-- > 0 &&
my_load >= 3 && _HA_ATOMIC_LOAD(&th_ctx->active_checks) >= 3) {
(!LIST_ISEMPTY(&th_ctx->queued_checks) || my_load >= 3) &&
_HA_ATOMIC_LOAD(&th_ctx->active_checks) >= 3) {
uint new_tid = statistical_prng_range(global.nbthread);
if (new_tid == tid)