/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 | | */ |