mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-18 19:56:59 +00:00
MINOR: checks: use an inline function for health_adjust()
This function is called twice per request, and does almost always nothing. Better use an inline version to avoid entering it when we can. About 0.5% additional performance was gained this way.
This commit is contained in:
parent
9e5a3aacf4
commit
9fe7aae6eb
@ -30,10 +30,22 @@ const char *get_check_status_info(short check_status);
|
|||||||
void set_server_down(struct check *check);
|
void set_server_down(struct check *check);
|
||||||
void set_server_up(struct check *check);
|
void set_server_up(struct check *check);
|
||||||
int start_checks();
|
int start_checks();
|
||||||
void health_adjust(struct server *s, short status);
|
void __health_adjust(struct server *s, short status);
|
||||||
|
|
||||||
extern struct data_cb check_conn_cb;
|
extern struct data_cb check_conn_cb;
|
||||||
|
|
||||||
|
/* Use this one only. This inline version only ensures that we don't
|
||||||
|
* call the function when the observe mode is disabled.
|
||||||
|
*/
|
||||||
|
static inline void health_adjust(struct server *s, short status)
|
||||||
|
{
|
||||||
|
/* return now if observing nor health check is not enabled */
|
||||||
|
if (!s->observe || !s->check.task)
|
||||||
|
return;
|
||||||
|
|
||||||
|
return __health_adjust(s, status);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _PROTO_CHECKS_H */
|
#endif /* _PROTO_CHECKS_H */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -641,15 +641,14 @@ static void check_failed(struct check *check)
|
|||||||
set_server_down(check);
|
set_server_down(check);
|
||||||
}
|
}
|
||||||
|
|
||||||
void health_adjust(struct server *s, short status)
|
/* note: use health_adjust() only, which first checks that the observe mode is
|
||||||
|
* enabled.
|
||||||
|
*/
|
||||||
|
void __health_adjust(struct server *s, short status)
|
||||||
{
|
{
|
||||||
int failed;
|
int failed;
|
||||||
int expire;
|
int expire;
|
||||||
|
|
||||||
/* return now if observing nor health check is not enabled */
|
|
||||||
if (!s->observe || !s->check.task)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (s->observe >= HANA_OBS_SIZE)
|
if (s->observe >= HANA_OBS_SIZE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user