mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-03-05 10:58:14 +00:00
MEDIUM: Add helper for task creation for checks
This helper is in preparation for adding a second struct check element to struct server. Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
f65194a6fa
commit
5c9424258e
44
src/checks.c
44
src/checks.c
@ -1509,6 +1509,32 @@ static struct task *process_chk(struct task *t)
|
||||
return t;
|
||||
}
|
||||
|
||||
static int start_check_task(struct check *check, int mininter,
|
||||
int nbcheck, int srvpos)
|
||||
{
|
||||
struct task *t;
|
||||
/* task for the check */
|
||||
if ((t = task_new()) == NULL) {
|
||||
Alert("Starting [%s:%s] check: out of memory.\n",
|
||||
check->server->proxy->id, check->server->id);
|
||||
return 0;
|
||||
}
|
||||
|
||||
check->task = t;
|
||||
t->process = process_chk;
|
||||
t->context = check;
|
||||
|
||||
/* check this every ms */
|
||||
t->expire = tick_add(now_ms,
|
||||
MS_TO_TICKS(((mininter &&
|
||||
mininter >= srv_getinter(check)) ?
|
||||
mininter : srv_getinter(check)) * srvpos / nbcheck));
|
||||
check->start = now;
|
||||
task_queue(t);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Start health-check.
|
||||
* Returns 0 if OK, -1 if error, and prints the error in this case.
|
||||
@ -1569,24 +1595,8 @@ int start_checks() {
|
||||
if (!(s->state & SRV_CHECKED))
|
||||
continue;
|
||||
|
||||
/* one task for the checks */
|
||||
if ((t = task_new()) == NULL) {
|
||||
Alert("Starting [%s:%s] check: out of memory.\n", px->id, s->id);
|
||||
if (!start_check_task(&s->check, mininter, nbcheck, srvpos))
|
||||
return -1;
|
||||
}
|
||||
|
||||
s->check.task = t;
|
||||
t->process = process_chk;
|
||||
t->context = &s->check;
|
||||
|
||||
/* check this every ms */
|
||||
t->expire = tick_add(now_ms,
|
||||
MS_TO_TICKS(((mininter &&
|
||||
mininter >= srv_getinter(&s->check)) ?
|
||||
mininter : srv_getinter(&s->check)) * srvpos / nbcheck));
|
||||
s->check.start = now;
|
||||
task_queue(t);
|
||||
|
||||
srvpos++;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user