From: Willy Tarreau Date: Thu, 5 Sep 2019 15:51:30 +0000 (+0200) Subject: BUG/MINOR: checks: start sending the request right after connect() X-Git-Tag: v2.1-dev2~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc705a6b;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/checks.c b/src/checks.c index 4a60c414d0..55e8a17a09 100644 --- a/src/checks.c +++ b/src/checks.c @@ -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;