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:
Willy Tarreau 2013-12-31 23:47:37 +01:00
parent 9e5a3aacf4
commit 9fe7aae6eb
2 changed files with 17 additions and 6 deletions

View File

@ -30,10 +30,22 @@ const char *get_check_status_info(short check_status);
void set_server_down(struct check *check);
void set_server_up(struct check *check);
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;
/* 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 */
/*

View File

@ -641,15 +641,14 @@ static void check_failed(struct check *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 expire;
/* return now if observing nor health check is not enabled */
if (!s->observe || !s->check.task)
return;
if (s->observe >= HANA_OBS_SIZE)
return;