BUG/MINOR: checks: start sending the request right after connect()

Since the change of I/O direction, we must not wait for an empty connect
callback before sending the request, we must attempt to send it as soon
as possible so that we don't uselessly poll. This is what this patch
does. This reduces the total check duration by a complete poll loop
compared to what is described in issue #253.

This must be backported to 2.0.
This commit is contained in:
Willy Tarreau 2019-09-05 17:51:30 +02:00
parent 5909380c05
commit cc705a6b61

View File

@ -2248,8 +2248,14 @@ static struct task *process_chk_conn(struct task *t, void *context, unsigned sho
t->expire = tick_first(t->expire, t_con);
}
if (check->type)
if (check->type) {
/* send the request if we have one. We avoid receiving
* if not connected, unless we didn't subscribe for
* sending since otherwise we won't be woken up.
*/
__event_srv_chk_w(cs);
__event_srv_chk_r(cs);
}
task_set_affinity(t, tid_bit);
goto reschedule;