Coverage Report

Created: 2025-11-24 06:16

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/haproxy/include/haproxy/queue.h
Line
Count
Source
1
/*
2
 * include/haproxy/queue.h
3
 * This file defines everything related to queues.
4
 *
5
 * Copyright (C) 2000-2020 Willy Tarreau - w@1wt.eu
6
 *
7
 * This library is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation, version 2.1
10
 * exclusively.
11
 *
12
 * This library is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with this library; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20
 */
21
22
#ifndef _HAPROXY_QUEUE_H
23
#define _HAPROXY_QUEUE_H
24
25
#include <haproxy/api.h>
26
#include <haproxy/backend.h>
27
#include <haproxy/pool.h>
28
#include <haproxy/proxy-t.h>
29
#include <haproxy/queue-t.h>
30
#include <haproxy/server-t.h>
31
#include <haproxy/stream-t.h>
32
33
extern struct pool_head *pool_head_pendconn;
34
35
struct pendconn *pendconn_add(struct stream *strm);
36
int pendconn_dequeue(struct stream *strm);
37
int process_srv_queue(struct server *s);
38
unsigned int srv_dynamic_maxconn(const struct server *s);
39
int pendconn_redistribute(struct server *s);
40
void pendconn_unlink(struct pendconn *p);
41
42
/* Removes the pendconn from the server/proxy queue. It supports being called
43
 * with NULL for pendconn and with a pendconn not in the list. It is the
44
 * function to be used by default when unsure. Do not call it with server
45
 * or proxy locks held however. Warning: this is called from stream_free()
46
 * which may run concurrently with pendconn_process_next_strm() which can be
47
 * dequeuing the entry. The function must not return until the pendconn is
48
 * guaranteed not to be known, which means that we must check its presence
49
 * in the tree under the queue's lock so that penconn_process_next_strm()
50
 * finishes before we return in case it would have grabbed this pendconn. See
51
 * github bugs #880 and #908, and the commit log for this fix for more details.
52
 */
53
static inline void pendconn_cond_unlink(struct pendconn *p)
54
0
{
55
0
  if (p)
56
0
    pendconn_unlink(p);
57
0
}
Unexecuted instantiation: cfgparse.c:pendconn_cond_unlink
Unexecuted instantiation: cli.c:pendconn_cond_unlink
Unexecuted instantiation: connection.c:pendconn_cond_unlink
Unexecuted instantiation: debug.c:pendconn_cond_unlink
Unexecuted instantiation: errors.c:pendconn_cond_unlink
Unexecuted instantiation: fd.c:pendconn_cond_unlink
Unexecuted instantiation: filters.c:pendconn_cond_unlink
Unexecuted instantiation: flt_http_comp.c:pendconn_cond_unlink
Unexecuted instantiation: frontend.c:pendconn_cond_unlink
Unexecuted instantiation: haproxy.c:pendconn_cond_unlink
Unexecuted instantiation: http_ana.c:pendconn_cond_unlink
Unexecuted instantiation: http_ext.c:pendconn_cond_unlink
Unexecuted instantiation: http_htx.c:pendconn_cond_unlink
Unexecuted instantiation: http_rules.c:pendconn_cond_unlink
Unexecuted instantiation: lb_chash.c:pendconn_cond_unlink
Unexecuted instantiation: lb_fas.c:pendconn_cond_unlink
Unexecuted instantiation: lb_fwlc.c:pendconn_cond_unlink
Unexecuted instantiation: lb_fwrr.c:pendconn_cond_unlink
Unexecuted instantiation: lb_map.c:pendconn_cond_unlink
Unexecuted instantiation: limits.c:pendconn_cond_unlink
Unexecuted instantiation: listener.c:pendconn_cond_unlink
Unexecuted instantiation: log.c:pendconn_cond_unlink
Unexecuted instantiation: mworker.c:pendconn_cond_unlink
Unexecuted instantiation: peers.c:pendconn_cond_unlink
Unexecuted instantiation: pool.c:pendconn_cond_unlink
Unexecuted instantiation: proto_rhttp.c:pendconn_cond_unlink
Unexecuted instantiation: proto_sockpair.c:pendconn_cond_unlink
Unexecuted instantiation: proxy.c:pendconn_cond_unlink
Unexecuted instantiation: queue.c:pendconn_cond_unlink
Unexecuted instantiation: resolvers.c:pendconn_cond_unlink
Unexecuted instantiation: ring.c:pendconn_cond_unlink
Unexecuted instantiation: sample.c:pendconn_cond_unlink
Unexecuted instantiation: server.c:pendconn_cond_unlink
Unexecuted instantiation: session.c:pendconn_cond_unlink
Unexecuted instantiation: sink.c:pendconn_cond_unlink
Unexecuted instantiation: sock.c:pendconn_cond_unlink
Unexecuted instantiation: stats-html.c:pendconn_cond_unlink
Unexecuted instantiation: stats.c:pendconn_cond_unlink
Unexecuted instantiation: stconn.c:pendconn_cond_unlink
Unexecuted instantiation: stick_table.c:pendconn_cond_unlink
Unexecuted instantiation: stream.c:pendconn_cond_unlink
Unexecuted instantiation: tcp_rules.c:pendconn_cond_unlink
Unexecuted instantiation: tcpcheck.c:pendconn_cond_unlink
Unexecuted instantiation: thread.c:pendconn_cond_unlink
Unexecuted instantiation: tools.c:pendconn_cond_unlink
Unexecuted instantiation: trace.c:pendconn_cond_unlink
Unexecuted instantiation: vars.c:pendconn_cond_unlink
Unexecuted instantiation: activity.c:pendconn_cond_unlink
Unexecuted instantiation: applet.c:pendconn_cond_unlink
Unexecuted instantiation: backend.c:pendconn_cond_unlink
Unexecuted instantiation: cache.c:pendconn_cond_unlink
Unexecuted instantiation: cfgparse-global.c:pendconn_cond_unlink
Unexecuted instantiation: cfgparse-listen.c:pendconn_cond_unlink
Unexecuted instantiation: channel.c:pendconn_cond_unlink
Unexecuted instantiation: check.c:pendconn_cond_unlink
Unexecuted instantiation: compression.c:pendconn_cond_unlink
Unexecuted instantiation: dns.c:pendconn_cond_unlink
Unexecuted instantiation: dns_ring.c:pendconn_cond_unlink
Unexecuted instantiation: fcgi-app.c:pendconn_cond_unlink
Unexecuted instantiation: http_fetch.c:pendconn_cond_unlink
Unexecuted instantiation: pattern.c:pendconn_cond_unlink
Unexecuted instantiation: payload.c:pendconn_cond_unlink
Unexecuted instantiation: proto_tcp.c:pendconn_cond_unlink
Unexecuted instantiation: stats-json.c:pendconn_cond_unlink
Unexecuted instantiation: flt_spoe.c:pendconn_cond_unlink
58
59
/* Releases the pendconn associated to stream <s> if it has any, and decreases
60
 * the pending count if needed. The connection might have been queued to a
61
 * specific server as well as to the proxy. The stream also gets marked
62
 * unqueued.
63
 *
64
 * This function must be called by the stream itself, so in the context of
65
 * process_stream, without any lock held among the pendconn, the server's queue
66
 * nor the proxy's queue.
67
 */
68
static inline void pendconn_free(struct stream *s)
69
0
{
70
0
  struct pendconn *p = s->pend_pos;
71
72
0
  if (p) {
73
0
    pendconn_cond_unlink(p);
74
0
    s->pend_pos = NULL;
75
0
    pool_free(pool_head_pendconn, p);
76
0
  }
77
0
}
Unexecuted instantiation: cfgparse.c:pendconn_free
Unexecuted instantiation: cli.c:pendconn_free
Unexecuted instantiation: connection.c:pendconn_free
Unexecuted instantiation: debug.c:pendconn_free
Unexecuted instantiation: errors.c:pendconn_free
Unexecuted instantiation: fd.c:pendconn_free
Unexecuted instantiation: filters.c:pendconn_free
Unexecuted instantiation: flt_http_comp.c:pendconn_free
Unexecuted instantiation: frontend.c:pendconn_free
Unexecuted instantiation: haproxy.c:pendconn_free
Unexecuted instantiation: http_ana.c:pendconn_free
Unexecuted instantiation: http_ext.c:pendconn_free
Unexecuted instantiation: http_htx.c:pendconn_free
Unexecuted instantiation: http_rules.c:pendconn_free
Unexecuted instantiation: lb_chash.c:pendconn_free
Unexecuted instantiation: lb_fas.c:pendconn_free
Unexecuted instantiation: lb_fwlc.c:pendconn_free
Unexecuted instantiation: lb_fwrr.c:pendconn_free
Unexecuted instantiation: lb_map.c:pendconn_free
Unexecuted instantiation: limits.c:pendconn_free
Unexecuted instantiation: listener.c:pendconn_free
Unexecuted instantiation: log.c:pendconn_free
Unexecuted instantiation: mworker.c:pendconn_free
Unexecuted instantiation: peers.c:pendconn_free
Unexecuted instantiation: pool.c:pendconn_free
Unexecuted instantiation: proto_rhttp.c:pendconn_free
Unexecuted instantiation: proto_sockpair.c:pendconn_free
Unexecuted instantiation: proxy.c:pendconn_free
Unexecuted instantiation: queue.c:pendconn_free
Unexecuted instantiation: resolvers.c:pendconn_free
Unexecuted instantiation: ring.c:pendconn_free
Unexecuted instantiation: sample.c:pendconn_free
Unexecuted instantiation: server.c:pendconn_free
Unexecuted instantiation: session.c:pendconn_free
Unexecuted instantiation: sink.c:pendconn_free
Unexecuted instantiation: sock.c:pendconn_free
Unexecuted instantiation: stats-html.c:pendconn_free
Unexecuted instantiation: stats.c:pendconn_free
Unexecuted instantiation: stconn.c:pendconn_free
Unexecuted instantiation: stick_table.c:pendconn_free
Unexecuted instantiation: stream.c:pendconn_free
Unexecuted instantiation: tcp_rules.c:pendconn_free
Unexecuted instantiation: tcpcheck.c:pendconn_free
Unexecuted instantiation: thread.c:pendconn_free
Unexecuted instantiation: tools.c:pendconn_free
Unexecuted instantiation: trace.c:pendconn_free
Unexecuted instantiation: vars.c:pendconn_free
Unexecuted instantiation: activity.c:pendconn_free
Unexecuted instantiation: applet.c:pendconn_free
Unexecuted instantiation: backend.c:pendconn_free
Unexecuted instantiation: cache.c:pendconn_free
Unexecuted instantiation: cfgparse-global.c:pendconn_free
Unexecuted instantiation: cfgparse-listen.c:pendconn_free
Unexecuted instantiation: channel.c:pendconn_free
Unexecuted instantiation: check.c:pendconn_free
Unexecuted instantiation: compression.c:pendconn_free
Unexecuted instantiation: dns.c:pendconn_free
Unexecuted instantiation: dns_ring.c:pendconn_free
Unexecuted instantiation: fcgi-app.c:pendconn_free
Unexecuted instantiation: http_fetch.c:pendconn_free
Unexecuted instantiation: pattern.c:pendconn_free
Unexecuted instantiation: payload.c:pendconn_free
Unexecuted instantiation: proto_tcp.c:pendconn_free
Unexecuted instantiation: stats-json.c:pendconn_free
Unexecuted instantiation: flt_spoe.c:pendconn_free
78
79
/* Returns 0 if all slots are full on a server, or 1 if there are slots available. */
80
0
static inline int server_has_room(const struct server *s) {
81
0
  return !s->maxconn || s->cur_sess < srv_dynamic_maxconn(s);
82
0
}
Unexecuted instantiation: cfgparse.c:server_has_room
Unexecuted instantiation: cli.c:server_has_room
Unexecuted instantiation: connection.c:server_has_room
Unexecuted instantiation: debug.c:server_has_room
Unexecuted instantiation: errors.c:server_has_room
Unexecuted instantiation: fd.c:server_has_room
Unexecuted instantiation: filters.c:server_has_room
Unexecuted instantiation: flt_http_comp.c:server_has_room
Unexecuted instantiation: frontend.c:server_has_room
Unexecuted instantiation: haproxy.c:server_has_room
Unexecuted instantiation: http_ana.c:server_has_room
Unexecuted instantiation: http_ext.c:server_has_room
Unexecuted instantiation: http_htx.c:server_has_room
Unexecuted instantiation: http_rules.c:server_has_room
Unexecuted instantiation: lb_chash.c:server_has_room
Unexecuted instantiation: lb_fas.c:server_has_room
Unexecuted instantiation: lb_fwlc.c:server_has_room
Unexecuted instantiation: lb_fwrr.c:server_has_room
Unexecuted instantiation: lb_map.c:server_has_room
Unexecuted instantiation: limits.c:server_has_room
Unexecuted instantiation: listener.c:server_has_room
Unexecuted instantiation: log.c:server_has_room
Unexecuted instantiation: mworker.c:server_has_room
Unexecuted instantiation: peers.c:server_has_room
Unexecuted instantiation: pool.c:server_has_room
Unexecuted instantiation: proto_rhttp.c:server_has_room
Unexecuted instantiation: proto_sockpair.c:server_has_room
Unexecuted instantiation: proxy.c:server_has_room
Unexecuted instantiation: queue.c:server_has_room
Unexecuted instantiation: resolvers.c:server_has_room
Unexecuted instantiation: ring.c:server_has_room
Unexecuted instantiation: sample.c:server_has_room
Unexecuted instantiation: server.c:server_has_room
Unexecuted instantiation: session.c:server_has_room
Unexecuted instantiation: sink.c:server_has_room
Unexecuted instantiation: sock.c:server_has_room
Unexecuted instantiation: stats-html.c:server_has_room
Unexecuted instantiation: stats.c:server_has_room
Unexecuted instantiation: stconn.c:server_has_room
Unexecuted instantiation: stick_table.c:server_has_room
Unexecuted instantiation: stream.c:server_has_room
Unexecuted instantiation: tcp_rules.c:server_has_room
Unexecuted instantiation: tcpcheck.c:server_has_room
Unexecuted instantiation: thread.c:server_has_room
Unexecuted instantiation: tools.c:server_has_room
Unexecuted instantiation: trace.c:server_has_room
Unexecuted instantiation: vars.c:server_has_room
Unexecuted instantiation: activity.c:server_has_room
Unexecuted instantiation: applet.c:server_has_room
Unexecuted instantiation: backend.c:server_has_room
Unexecuted instantiation: cache.c:server_has_room
Unexecuted instantiation: cfgparse-global.c:server_has_room
Unexecuted instantiation: cfgparse-listen.c:server_has_room
Unexecuted instantiation: channel.c:server_has_room
Unexecuted instantiation: check.c:server_has_room
Unexecuted instantiation: compression.c:server_has_room
Unexecuted instantiation: dns.c:server_has_room
Unexecuted instantiation: dns_ring.c:server_has_room
Unexecuted instantiation: fcgi-app.c:server_has_room
Unexecuted instantiation: http_fetch.c:server_has_room
Unexecuted instantiation: pattern.c:server_has_room
Unexecuted instantiation: payload.c:server_has_room
Unexecuted instantiation: proto_tcp.c:server_has_room
Unexecuted instantiation: stats-json.c:server_has_room
Unexecuted instantiation: flt_spoe.c:server_has_room
83
84
/* returns 0 if nothing has to be done for server <s> regarding queued connections,
85
 * and non-zero otherwise. If the server is down, we only check its own queue. Suited
86
 * for and if/else usage.
87
 */
88
0
static inline int may_dequeue_tasks(const struct server *s, const struct proxy *p) {
89
0
  return (s && (s->queueslength || (p->queueslength && srv_currently_usable(s))) &&
90
0
    (!s->maxconn || s->cur_sess < srv_dynamic_maxconn(s)));
91
0
}
Unexecuted instantiation: cfgparse.c:may_dequeue_tasks
Unexecuted instantiation: cli.c:may_dequeue_tasks
Unexecuted instantiation: connection.c:may_dequeue_tasks
Unexecuted instantiation: debug.c:may_dequeue_tasks
Unexecuted instantiation: errors.c:may_dequeue_tasks
Unexecuted instantiation: fd.c:may_dequeue_tasks
Unexecuted instantiation: filters.c:may_dequeue_tasks
Unexecuted instantiation: flt_http_comp.c:may_dequeue_tasks
Unexecuted instantiation: frontend.c:may_dequeue_tasks
Unexecuted instantiation: haproxy.c:may_dequeue_tasks
Unexecuted instantiation: http_ana.c:may_dequeue_tasks
Unexecuted instantiation: http_ext.c:may_dequeue_tasks
Unexecuted instantiation: http_htx.c:may_dequeue_tasks
Unexecuted instantiation: http_rules.c:may_dequeue_tasks
Unexecuted instantiation: lb_chash.c:may_dequeue_tasks
Unexecuted instantiation: lb_fas.c:may_dequeue_tasks
Unexecuted instantiation: lb_fwlc.c:may_dequeue_tasks
Unexecuted instantiation: lb_fwrr.c:may_dequeue_tasks
Unexecuted instantiation: lb_map.c:may_dequeue_tasks
Unexecuted instantiation: limits.c:may_dequeue_tasks
Unexecuted instantiation: listener.c:may_dequeue_tasks
Unexecuted instantiation: log.c:may_dequeue_tasks
Unexecuted instantiation: mworker.c:may_dequeue_tasks
Unexecuted instantiation: peers.c:may_dequeue_tasks
Unexecuted instantiation: pool.c:may_dequeue_tasks
Unexecuted instantiation: proto_rhttp.c:may_dequeue_tasks
Unexecuted instantiation: proto_sockpair.c:may_dequeue_tasks
Unexecuted instantiation: proxy.c:may_dequeue_tasks
Unexecuted instantiation: queue.c:may_dequeue_tasks
Unexecuted instantiation: resolvers.c:may_dequeue_tasks
Unexecuted instantiation: ring.c:may_dequeue_tasks
Unexecuted instantiation: sample.c:may_dequeue_tasks
Unexecuted instantiation: server.c:may_dequeue_tasks
Unexecuted instantiation: session.c:may_dequeue_tasks
Unexecuted instantiation: sink.c:may_dequeue_tasks
Unexecuted instantiation: sock.c:may_dequeue_tasks
Unexecuted instantiation: stats-html.c:may_dequeue_tasks
Unexecuted instantiation: stats.c:may_dequeue_tasks
Unexecuted instantiation: stconn.c:may_dequeue_tasks
Unexecuted instantiation: stick_table.c:may_dequeue_tasks
Unexecuted instantiation: stream.c:may_dequeue_tasks
Unexecuted instantiation: tcp_rules.c:may_dequeue_tasks
Unexecuted instantiation: tcpcheck.c:may_dequeue_tasks
Unexecuted instantiation: thread.c:may_dequeue_tasks
Unexecuted instantiation: tools.c:may_dequeue_tasks
Unexecuted instantiation: trace.c:may_dequeue_tasks
Unexecuted instantiation: vars.c:may_dequeue_tasks
Unexecuted instantiation: activity.c:may_dequeue_tasks
Unexecuted instantiation: applet.c:may_dequeue_tasks
Unexecuted instantiation: backend.c:may_dequeue_tasks
Unexecuted instantiation: cache.c:may_dequeue_tasks
Unexecuted instantiation: cfgparse-global.c:may_dequeue_tasks
Unexecuted instantiation: cfgparse-listen.c:may_dequeue_tasks
Unexecuted instantiation: channel.c:may_dequeue_tasks
Unexecuted instantiation: check.c:may_dequeue_tasks
Unexecuted instantiation: compression.c:may_dequeue_tasks
Unexecuted instantiation: dns.c:may_dequeue_tasks
Unexecuted instantiation: dns_ring.c:may_dequeue_tasks
Unexecuted instantiation: fcgi-app.c:may_dequeue_tasks
Unexecuted instantiation: http_fetch.c:may_dequeue_tasks
Unexecuted instantiation: pattern.c:may_dequeue_tasks
Unexecuted instantiation: payload.c:may_dequeue_tasks
Unexecuted instantiation: proto_tcp.c:may_dequeue_tasks
Unexecuted instantiation: stats-json.c:may_dequeue_tasks
Unexecuted instantiation: flt_spoe.c:may_dequeue_tasks
92
93
static inline int queue_limit_class(int class)
94
0
{
95
0
  if (class < -0x7ff)
96
0
    return -0x7ff;
97
0
  if (class > 0x7ff)
98
0
    return 0x7ff;
99
0
  return class;
100
0
}
Unexecuted instantiation: cfgparse.c:queue_limit_class
Unexecuted instantiation: cli.c:queue_limit_class
Unexecuted instantiation: connection.c:queue_limit_class
Unexecuted instantiation: debug.c:queue_limit_class
Unexecuted instantiation: errors.c:queue_limit_class
Unexecuted instantiation: fd.c:queue_limit_class
Unexecuted instantiation: filters.c:queue_limit_class
Unexecuted instantiation: flt_http_comp.c:queue_limit_class
Unexecuted instantiation: frontend.c:queue_limit_class
Unexecuted instantiation: haproxy.c:queue_limit_class
Unexecuted instantiation: http_ana.c:queue_limit_class
Unexecuted instantiation: http_ext.c:queue_limit_class
Unexecuted instantiation: http_htx.c:queue_limit_class
Unexecuted instantiation: http_rules.c:queue_limit_class
Unexecuted instantiation: lb_chash.c:queue_limit_class
Unexecuted instantiation: lb_fas.c:queue_limit_class
Unexecuted instantiation: lb_fwlc.c:queue_limit_class
Unexecuted instantiation: lb_fwrr.c:queue_limit_class
Unexecuted instantiation: lb_map.c:queue_limit_class
Unexecuted instantiation: limits.c:queue_limit_class
Unexecuted instantiation: listener.c:queue_limit_class
Unexecuted instantiation: log.c:queue_limit_class
Unexecuted instantiation: mworker.c:queue_limit_class
Unexecuted instantiation: peers.c:queue_limit_class
Unexecuted instantiation: pool.c:queue_limit_class
Unexecuted instantiation: proto_rhttp.c:queue_limit_class
Unexecuted instantiation: proto_sockpair.c:queue_limit_class
Unexecuted instantiation: proxy.c:queue_limit_class
Unexecuted instantiation: queue.c:queue_limit_class
Unexecuted instantiation: resolvers.c:queue_limit_class
Unexecuted instantiation: ring.c:queue_limit_class
Unexecuted instantiation: sample.c:queue_limit_class
Unexecuted instantiation: server.c:queue_limit_class
Unexecuted instantiation: session.c:queue_limit_class
Unexecuted instantiation: sink.c:queue_limit_class
Unexecuted instantiation: sock.c:queue_limit_class
Unexecuted instantiation: stats-html.c:queue_limit_class
Unexecuted instantiation: stats.c:queue_limit_class
Unexecuted instantiation: stconn.c:queue_limit_class
Unexecuted instantiation: stick_table.c:queue_limit_class
Unexecuted instantiation: stream.c:queue_limit_class
Unexecuted instantiation: tcp_rules.c:queue_limit_class
Unexecuted instantiation: tcpcheck.c:queue_limit_class
Unexecuted instantiation: thread.c:queue_limit_class
Unexecuted instantiation: tools.c:queue_limit_class
Unexecuted instantiation: trace.c:queue_limit_class
Unexecuted instantiation: vars.c:queue_limit_class
Unexecuted instantiation: activity.c:queue_limit_class
Unexecuted instantiation: applet.c:queue_limit_class
Unexecuted instantiation: backend.c:queue_limit_class
Unexecuted instantiation: cache.c:queue_limit_class
Unexecuted instantiation: cfgparse-global.c:queue_limit_class
Unexecuted instantiation: cfgparse-listen.c:queue_limit_class
Unexecuted instantiation: channel.c:queue_limit_class
Unexecuted instantiation: check.c:queue_limit_class
Unexecuted instantiation: compression.c:queue_limit_class
Unexecuted instantiation: dns.c:queue_limit_class
Unexecuted instantiation: dns_ring.c:queue_limit_class
Unexecuted instantiation: fcgi-app.c:queue_limit_class
Unexecuted instantiation: http_fetch.c:queue_limit_class
Unexecuted instantiation: pattern.c:queue_limit_class
Unexecuted instantiation: payload.c:queue_limit_class
Unexecuted instantiation: proto_tcp.c:queue_limit_class
Unexecuted instantiation: stats-json.c:queue_limit_class
Unexecuted instantiation: flt_spoe.c:queue_limit_class
101
102
static inline int queue_limit_offset(int offset)
103
0
{
104
0
  if (offset < -0x7ffff)
105
0
    return -0x7ffff;
106
0
  if (offset > 0x7ffff)
107
0
    return 0x7ffff;
108
0
  return offset;
109
0
}
Unexecuted instantiation: cfgparse.c:queue_limit_offset
Unexecuted instantiation: cli.c:queue_limit_offset
Unexecuted instantiation: connection.c:queue_limit_offset
Unexecuted instantiation: debug.c:queue_limit_offset
Unexecuted instantiation: errors.c:queue_limit_offset
Unexecuted instantiation: fd.c:queue_limit_offset
Unexecuted instantiation: filters.c:queue_limit_offset
Unexecuted instantiation: flt_http_comp.c:queue_limit_offset
Unexecuted instantiation: frontend.c:queue_limit_offset
Unexecuted instantiation: haproxy.c:queue_limit_offset
Unexecuted instantiation: http_ana.c:queue_limit_offset
Unexecuted instantiation: http_ext.c:queue_limit_offset
Unexecuted instantiation: http_htx.c:queue_limit_offset
Unexecuted instantiation: http_rules.c:queue_limit_offset
Unexecuted instantiation: lb_chash.c:queue_limit_offset
Unexecuted instantiation: lb_fas.c:queue_limit_offset
Unexecuted instantiation: lb_fwlc.c:queue_limit_offset
Unexecuted instantiation: lb_fwrr.c:queue_limit_offset
Unexecuted instantiation: lb_map.c:queue_limit_offset
Unexecuted instantiation: limits.c:queue_limit_offset
Unexecuted instantiation: listener.c:queue_limit_offset
Unexecuted instantiation: log.c:queue_limit_offset
Unexecuted instantiation: mworker.c:queue_limit_offset
Unexecuted instantiation: peers.c:queue_limit_offset
Unexecuted instantiation: pool.c:queue_limit_offset
Unexecuted instantiation: proto_rhttp.c:queue_limit_offset
Unexecuted instantiation: proto_sockpair.c:queue_limit_offset
Unexecuted instantiation: proxy.c:queue_limit_offset
Unexecuted instantiation: queue.c:queue_limit_offset
Unexecuted instantiation: resolvers.c:queue_limit_offset
Unexecuted instantiation: ring.c:queue_limit_offset
Unexecuted instantiation: sample.c:queue_limit_offset
Unexecuted instantiation: server.c:queue_limit_offset
Unexecuted instantiation: session.c:queue_limit_offset
Unexecuted instantiation: sink.c:queue_limit_offset
Unexecuted instantiation: sock.c:queue_limit_offset
Unexecuted instantiation: stats-html.c:queue_limit_offset
Unexecuted instantiation: stats.c:queue_limit_offset
Unexecuted instantiation: stconn.c:queue_limit_offset
Unexecuted instantiation: stick_table.c:queue_limit_offset
Unexecuted instantiation: stream.c:queue_limit_offset
Unexecuted instantiation: tcp_rules.c:queue_limit_offset
Unexecuted instantiation: tcpcheck.c:queue_limit_offset
Unexecuted instantiation: thread.c:queue_limit_offset
Unexecuted instantiation: tools.c:queue_limit_offset
Unexecuted instantiation: trace.c:queue_limit_offset
Unexecuted instantiation: vars.c:queue_limit_offset
Unexecuted instantiation: activity.c:queue_limit_offset
Unexecuted instantiation: applet.c:queue_limit_offset
Unexecuted instantiation: backend.c:queue_limit_offset
Unexecuted instantiation: cache.c:queue_limit_offset
Unexecuted instantiation: cfgparse-global.c:queue_limit_offset
Unexecuted instantiation: cfgparse-listen.c:queue_limit_offset
Unexecuted instantiation: channel.c:queue_limit_offset
Unexecuted instantiation: check.c:queue_limit_offset
Unexecuted instantiation: compression.c:queue_limit_offset
Unexecuted instantiation: dns.c:queue_limit_offset
Unexecuted instantiation: dns_ring.c:queue_limit_offset
Unexecuted instantiation: fcgi-app.c:queue_limit_offset
Unexecuted instantiation: http_fetch.c:queue_limit_offset
Unexecuted instantiation: pattern.c:queue_limit_offset
Unexecuted instantiation: payload.c:queue_limit_offset
Unexecuted instantiation: proto_tcp.c:queue_limit_offset
Unexecuted instantiation: stats-json.c:queue_limit_offset
Unexecuted instantiation: flt_spoe.c:queue_limit_offset
110
111
/* initialize the queue <queue> for proxy <px> and server <sv>. A server's
112
 * always has both a valid proxy and a valid server. A proxy's queue only
113
 * has a valid proxy and NULL for the server queue. This is how they're
114
 * distinguished during operations.
115
 */
116
static inline void queue_init(struct queue *queue, struct proxy *px, struct server *sv)
117
0
{
118
0
  queue->head = EB_ROOT;
119
0
  queue->length = 0;
120
0
  queue->idx = 0;
121
0
  queue->px = px;
122
0
  queue->sv = sv;
123
0
  HA_SPIN_INIT(&queue->lock);
124
0
}
Unexecuted instantiation: cfgparse.c:queue_init
Unexecuted instantiation: cli.c:queue_init
Unexecuted instantiation: connection.c:queue_init
Unexecuted instantiation: debug.c:queue_init
Unexecuted instantiation: errors.c:queue_init
Unexecuted instantiation: fd.c:queue_init
Unexecuted instantiation: filters.c:queue_init
Unexecuted instantiation: flt_http_comp.c:queue_init
Unexecuted instantiation: frontend.c:queue_init
Unexecuted instantiation: haproxy.c:queue_init
Unexecuted instantiation: http_ana.c:queue_init
Unexecuted instantiation: http_ext.c:queue_init
Unexecuted instantiation: http_htx.c:queue_init
Unexecuted instantiation: http_rules.c:queue_init
Unexecuted instantiation: lb_chash.c:queue_init
Unexecuted instantiation: lb_fas.c:queue_init
Unexecuted instantiation: lb_fwlc.c:queue_init
Unexecuted instantiation: lb_fwrr.c:queue_init
Unexecuted instantiation: lb_map.c:queue_init
Unexecuted instantiation: limits.c:queue_init
Unexecuted instantiation: listener.c:queue_init
Unexecuted instantiation: log.c:queue_init
Unexecuted instantiation: mworker.c:queue_init
Unexecuted instantiation: peers.c:queue_init
Unexecuted instantiation: pool.c:queue_init
Unexecuted instantiation: proto_rhttp.c:queue_init
Unexecuted instantiation: proto_sockpair.c:queue_init
Unexecuted instantiation: proxy.c:queue_init
Unexecuted instantiation: queue.c:queue_init
Unexecuted instantiation: resolvers.c:queue_init
Unexecuted instantiation: ring.c:queue_init
Unexecuted instantiation: sample.c:queue_init
Unexecuted instantiation: server.c:queue_init
Unexecuted instantiation: session.c:queue_init
Unexecuted instantiation: sink.c:queue_init
Unexecuted instantiation: sock.c:queue_init
Unexecuted instantiation: stats-html.c:queue_init
Unexecuted instantiation: stats.c:queue_init
Unexecuted instantiation: stconn.c:queue_init
Unexecuted instantiation: stick_table.c:queue_init
Unexecuted instantiation: stream.c:queue_init
Unexecuted instantiation: tcp_rules.c:queue_init
Unexecuted instantiation: tcpcheck.c:queue_init
Unexecuted instantiation: thread.c:queue_init
Unexecuted instantiation: tools.c:queue_init
Unexecuted instantiation: trace.c:queue_init
Unexecuted instantiation: vars.c:queue_init
Unexecuted instantiation: activity.c:queue_init
Unexecuted instantiation: applet.c:queue_init
Unexecuted instantiation: backend.c:queue_init
Unexecuted instantiation: cache.c:queue_init
Unexecuted instantiation: cfgparse-global.c:queue_init
Unexecuted instantiation: cfgparse-listen.c:queue_init
Unexecuted instantiation: channel.c:queue_init
Unexecuted instantiation: check.c:queue_init
Unexecuted instantiation: compression.c:queue_init
Unexecuted instantiation: dns.c:queue_init
Unexecuted instantiation: dns_ring.c:queue_init
Unexecuted instantiation: fcgi-app.c:queue_init
Unexecuted instantiation: http_fetch.c:queue_init
Unexecuted instantiation: pattern.c:queue_init
Unexecuted instantiation: payload.c:queue_init
Unexecuted instantiation: proto_tcp.c:queue_init
Unexecuted instantiation: stats-json.c:queue_init
Unexecuted instantiation: flt_spoe.c:queue_init
125
126
#endif /* _HAPROXY_QUEUE_H */
127
128
/*
129
 * Local variables:
130
 *  c-indent-level: 8
131
 *  c-basic-offset: 8
132
 * End:
133
 */