/src/haproxy/include/haproxy/ticks.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * include/haproxy/ticks.h |
3 | | * Functions and macros for manipulation of expiration timers |
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 | | /* |
23 | | * Using a mix of milliseconds and timeval for internal timers is expensive and |
24 | | * overkill, because we don't need such a precision to compute timeouts. |
25 | | * So we're converting them to "ticks". |
26 | | * |
27 | | * A tick is a representation of a date relative to another one, and is |
28 | | * measured in milliseconds. The natural usage is to represent an absolute date |
29 | | * relative to the current date. Since it is not practical to update all values |
30 | | * each time the current date changes, instead we use the absolute date rounded |
31 | | * down to fit in a tick. We then have to compare a tick to the current date to |
32 | | * know whether it is in the future or in the past. If a tick is below the |
33 | | * current date, it is in the past. If it is above, it is in the future. The |
34 | | * values will wrap so we can't compare that easily, instead we check the sign |
35 | | * of the difference between a tick and the current date. |
36 | | * |
37 | | * Proceeding like this allows us to manipulate dates that are stored in |
38 | | * scalars with enough precision and range. For this reason, we store ticks in |
39 | | * 32-bit integers. This is enough to handle dates that are between 24.85 days |
40 | | * in the past and as much in the future. |
41 | | * |
42 | | * We must both support absolute dates (well in fact, dates relative to now+/- |
43 | | * 24 days), and intervals (for timeouts). Both types need an "eternity" magic |
44 | | * value. For optimal code generation, we'll use zero as the magic value |
45 | | * indicating that an expiration timer or a timeout is not set. We have to |
46 | | * check that we don't return this value when adding timeouts to <now>. If a |
47 | | * computation returns 0, we must increase it to 1 (which will push the timeout |
48 | | * 1 ms further). For this reason, timeouts must not be added by hand but via |
49 | | * the dedicated tick_add() function. |
50 | | */ |
51 | | |
52 | | #ifndef _HAPROXY_TICKS_H |
53 | | #define _HAPROXY_TICKS_H |
54 | | |
55 | | #include <haproxy/api.h> |
56 | | |
57 | 0 | #define TICK_ETERNITY 0 |
58 | | |
59 | | /* right now, ticks are milliseconds. Both negative ms and negative ticks |
60 | | * indicate eternity. |
61 | | */ |
62 | 0 | #define MS_TO_TICKS(ms) (ms) |
63 | 0 | #define TICKS_TO_MS(tk) (tk) |
64 | | |
65 | | /* currently updated and stored in time.c */ |
66 | | extern THREAD_LOCAL unsigned int now_ms; /* internal date in milliseconds (may wrap) */ |
67 | | extern volatile unsigned int global_now_ms; |
68 | | |
69 | | /* return 1 if tick is set, otherwise 0 */ |
70 | | static inline int tick_isset(int expire) |
71 | 0 | { |
72 | 0 | return expire != 0; |
73 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_isset Unexecuted instantiation: cfgparse.c:tick_isset Unexecuted instantiation: chunk.c:tick_isset Unexecuted instantiation: cli.c:tick_isset Unexecuted instantiation: clock.c:tick_isset Unexecuted instantiation: connection.c:tick_isset Unexecuted instantiation: debug.c:tick_isset Unexecuted instantiation: errors.c:tick_isset Unexecuted instantiation: fd.c:tick_isset Unexecuted instantiation: filters.c:tick_isset Unexecuted instantiation: flt_http_comp.c:tick_isset Unexecuted instantiation: freq_ctr.c:tick_isset Unexecuted instantiation: frontend.c:tick_isset Unexecuted instantiation: haproxy.c:tick_isset Unexecuted instantiation: http.c:tick_isset Unexecuted instantiation: http_ana.c:tick_isset Unexecuted instantiation: http_ext.c:tick_isset Unexecuted instantiation: http_htx.c:tick_isset Unexecuted instantiation: http_rules.c:tick_isset Unexecuted instantiation: htx.c:tick_isset Unexecuted instantiation: lb_chash.c:tick_isset Unexecuted instantiation: lb_fas.c:tick_isset Unexecuted instantiation: lb_fwlc.c:tick_isset Unexecuted instantiation: lb_fwrr.c:tick_isset Unexecuted instantiation: lb_map.c:tick_isset Unexecuted instantiation: listener.c:tick_isset Unexecuted instantiation: log.c:tick_isset Unexecuted instantiation: mailers.c:tick_isset Unexecuted instantiation: mworker.c:tick_isset Unexecuted instantiation: peers.c:tick_isset Unexecuted instantiation: pool.c:tick_isset Unexecuted instantiation: proto_sockpair.c:tick_isset Unexecuted instantiation: protocol.c:tick_isset Unexecuted instantiation: proxy.c:tick_isset Unexecuted instantiation: queue.c:tick_isset Unexecuted instantiation: regex.c:tick_isset Unexecuted instantiation: resolvers.c:tick_isset Unexecuted instantiation: ring.c:tick_isset Unexecuted instantiation: sample.c:tick_isset Unexecuted instantiation: server.c:tick_isset Unexecuted instantiation: session.c:tick_isset Unexecuted instantiation: signal.c:tick_isset Unexecuted instantiation: sink.c:tick_isset Unexecuted instantiation: sock.c:tick_isset Unexecuted instantiation: sock_inet.c:tick_isset Unexecuted instantiation: stats.c:tick_isset Unexecuted instantiation: stconn.c:tick_isset Unexecuted instantiation: stick_table.c:tick_isset Unexecuted instantiation: stream.c:tick_isset Unexecuted instantiation: task.c:tick_isset Unexecuted instantiation: tcp_rules.c:tick_isset Unexecuted instantiation: tcpcheck.c:tick_isset Unexecuted instantiation: thread.c:tick_isset Unexecuted instantiation: tools.c:tick_isset Unexecuted instantiation: trace.c:tick_isset Unexecuted instantiation: vars.c:tick_isset Unexecuted instantiation: acl.c:tick_isset Unexecuted instantiation: action.c:tick_isset Unexecuted instantiation: activity.c:tick_isset Unexecuted instantiation: applet.c:tick_isset Unexecuted instantiation: arg.c:tick_isset Unexecuted instantiation: backend.c:tick_isset Unexecuted instantiation: cache.c:tick_isset Unexecuted instantiation: cfgcond.c:tick_isset Unexecuted instantiation: cfgparse-global.c:tick_isset Unexecuted instantiation: cfgparse-listen.c:tick_isset Unexecuted instantiation: channel.c:tick_isset Unexecuted instantiation: check.c:tick_isset Unexecuted instantiation: compression.c:tick_isset Unexecuted instantiation: dns.c:tick_isset Unexecuted instantiation: dynbuf.c:tick_isset Unexecuted instantiation: event_hdl.c:tick_isset Unexecuted instantiation: extcheck.c:tick_isset Unexecuted instantiation: fcgi-app.c:tick_isset Unexecuted instantiation: fix.c:tick_isset Unexecuted instantiation: flt_spoe.c:tick_isset Unexecuted instantiation: h1.c:tick_isset Unexecuted instantiation: http_fetch.c:tick_isset Unexecuted instantiation: mqtt.c:tick_isset Unexecuted instantiation: pattern.c:tick_isset Unexecuted instantiation: payload.c:tick_isset Unexecuted instantiation: pipe.c:tick_isset Unexecuted instantiation: proto_tcp.c:tick_isset Unexecuted instantiation: h1_htx.c:tick_isset |
74 | | |
75 | | /* Add <timeout> to <now>, and return the resulting expiration date. |
76 | | * <timeout> will not be checked for null values. |
77 | | */ |
78 | | static inline int tick_add(int now, int timeout) |
79 | 0 | { |
80 | 0 | now += timeout; |
81 | 0 | if (unlikely(!now)) |
82 | 0 | now++; /* unfortunate value */ |
83 | 0 | return now; |
84 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_add Unexecuted instantiation: cfgparse.c:tick_add Unexecuted instantiation: chunk.c:tick_add Unexecuted instantiation: cli.c:tick_add Unexecuted instantiation: clock.c:tick_add Unexecuted instantiation: connection.c:tick_add Unexecuted instantiation: debug.c:tick_add Unexecuted instantiation: errors.c:tick_add Unexecuted instantiation: fd.c:tick_add Unexecuted instantiation: filters.c:tick_add Unexecuted instantiation: flt_http_comp.c:tick_add Unexecuted instantiation: freq_ctr.c:tick_add Unexecuted instantiation: frontend.c:tick_add Unexecuted instantiation: haproxy.c:tick_add Unexecuted instantiation: http.c:tick_add Unexecuted instantiation: http_ana.c:tick_add Unexecuted instantiation: http_ext.c:tick_add Unexecuted instantiation: http_htx.c:tick_add Unexecuted instantiation: http_rules.c:tick_add Unexecuted instantiation: htx.c:tick_add Unexecuted instantiation: lb_chash.c:tick_add Unexecuted instantiation: lb_fas.c:tick_add Unexecuted instantiation: lb_fwlc.c:tick_add Unexecuted instantiation: lb_fwrr.c:tick_add Unexecuted instantiation: lb_map.c:tick_add Unexecuted instantiation: listener.c:tick_add Unexecuted instantiation: log.c:tick_add Unexecuted instantiation: mailers.c:tick_add Unexecuted instantiation: mworker.c:tick_add Unexecuted instantiation: peers.c:tick_add Unexecuted instantiation: pool.c:tick_add Unexecuted instantiation: proto_sockpair.c:tick_add Unexecuted instantiation: protocol.c:tick_add Unexecuted instantiation: proxy.c:tick_add Unexecuted instantiation: queue.c:tick_add Unexecuted instantiation: regex.c:tick_add Unexecuted instantiation: resolvers.c:tick_add Unexecuted instantiation: ring.c:tick_add Unexecuted instantiation: sample.c:tick_add Unexecuted instantiation: server.c:tick_add Unexecuted instantiation: session.c:tick_add Unexecuted instantiation: signal.c:tick_add Unexecuted instantiation: sink.c:tick_add Unexecuted instantiation: sock.c:tick_add Unexecuted instantiation: sock_inet.c:tick_add Unexecuted instantiation: stats.c:tick_add Unexecuted instantiation: stconn.c:tick_add Unexecuted instantiation: stick_table.c:tick_add Unexecuted instantiation: stream.c:tick_add Unexecuted instantiation: task.c:tick_add Unexecuted instantiation: tcp_rules.c:tick_add Unexecuted instantiation: tcpcheck.c:tick_add Unexecuted instantiation: thread.c:tick_add Unexecuted instantiation: tools.c:tick_add Unexecuted instantiation: trace.c:tick_add Unexecuted instantiation: vars.c:tick_add Unexecuted instantiation: acl.c:tick_add Unexecuted instantiation: action.c:tick_add Unexecuted instantiation: activity.c:tick_add Unexecuted instantiation: applet.c:tick_add Unexecuted instantiation: arg.c:tick_add Unexecuted instantiation: backend.c:tick_add Unexecuted instantiation: cache.c:tick_add Unexecuted instantiation: cfgcond.c:tick_add Unexecuted instantiation: cfgparse-global.c:tick_add Unexecuted instantiation: cfgparse-listen.c:tick_add Unexecuted instantiation: channel.c:tick_add Unexecuted instantiation: check.c:tick_add Unexecuted instantiation: compression.c:tick_add Unexecuted instantiation: dns.c:tick_add Unexecuted instantiation: dynbuf.c:tick_add Unexecuted instantiation: event_hdl.c:tick_add Unexecuted instantiation: extcheck.c:tick_add Unexecuted instantiation: fcgi-app.c:tick_add Unexecuted instantiation: fix.c:tick_add Unexecuted instantiation: flt_spoe.c:tick_add Unexecuted instantiation: h1.c:tick_add Unexecuted instantiation: http_fetch.c:tick_add Unexecuted instantiation: mqtt.c:tick_add Unexecuted instantiation: pattern.c:tick_add Unexecuted instantiation: payload.c:tick_add Unexecuted instantiation: pipe.c:tick_add Unexecuted instantiation: proto_tcp.c:tick_add Unexecuted instantiation: h1_htx.c:tick_add |
85 | | |
86 | | /* add <timeout> to <now> if it is set, otherwise set it to eternity. |
87 | | * Return the resulting expiration date. |
88 | | */ |
89 | | static inline int tick_add_ifset(int now, int timeout) |
90 | 0 | { |
91 | 0 | if (!timeout) |
92 | 0 | return TICK_ETERNITY; |
93 | 0 | return tick_add(now, timeout); |
94 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_add_ifset Unexecuted instantiation: cfgparse.c:tick_add_ifset Unexecuted instantiation: chunk.c:tick_add_ifset Unexecuted instantiation: cli.c:tick_add_ifset Unexecuted instantiation: clock.c:tick_add_ifset Unexecuted instantiation: connection.c:tick_add_ifset Unexecuted instantiation: debug.c:tick_add_ifset Unexecuted instantiation: errors.c:tick_add_ifset Unexecuted instantiation: fd.c:tick_add_ifset Unexecuted instantiation: filters.c:tick_add_ifset Unexecuted instantiation: flt_http_comp.c:tick_add_ifset Unexecuted instantiation: freq_ctr.c:tick_add_ifset Unexecuted instantiation: frontend.c:tick_add_ifset Unexecuted instantiation: haproxy.c:tick_add_ifset Unexecuted instantiation: http.c:tick_add_ifset Unexecuted instantiation: http_ana.c:tick_add_ifset Unexecuted instantiation: http_ext.c:tick_add_ifset Unexecuted instantiation: http_htx.c:tick_add_ifset Unexecuted instantiation: http_rules.c:tick_add_ifset Unexecuted instantiation: htx.c:tick_add_ifset Unexecuted instantiation: lb_chash.c:tick_add_ifset Unexecuted instantiation: lb_fas.c:tick_add_ifset Unexecuted instantiation: lb_fwlc.c:tick_add_ifset Unexecuted instantiation: lb_fwrr.c:tick_add_ifset Unexecuted instantiation: lb_map.c:tick_add_ifset Unexecuted instantiation: listener.c:tick_add_ifset Unexecuted instantiation: log.c:tick_add_ifset Unexecuted instantiation: mailers.c:tick_add_ifset Unexecuted instantiation: mworker.c:tick_add_ifset Unexecuted instantiation: peers.c:tick_add_ifset Unexecuted instantiation: pool.c:tick_add_ifset Unexecuted instantiation: proto_sockpair.c:tick_add_ifset Unexecuted instantiation: protocol.c:tick_add_ifset Unexecuted instantiation: proxy.c:tick_add_ifset Unexecuted instantiation: queue.c:tick_add_ifset Unexecuted instantiation: regex.c:tick_add_ifset Unexecuted instantiation: resolvers.c:tick_add_ifset Unexecuted instantiation: ring.c:tick_add_ifset Unexecuted instantiation: sample.c:tick_add_ifset Unexecuted instantiation: server.c:tick_add_ifset Unexecuted instantiation: session.c:tick_add_ifset Unexecuted instantiation: signal.c:tick_add_ifset Unexecuted instantiation: sink.c:tick_add_ifset Unexecuted instantiation: sock.c:tick_add_ifset Unexecuted instantiation: sock_inet.c:tick_add_ifset Unexecuted instantiation: stats.c:tick_add_ifset Unexecuted instantiation: stconn.c:tick_add_ifset Unexecuted instantiation: stick_table.c:tick_add_ifset Unexecuted instantiation: stream.c:tick_add_ifset Unexecuted instantiation: task.c:tick_add_ifset Unexecuted instantiation: tcp_rules.c:tick_add_ifset Unexecuted instantiation: tcpcheck.c:tick_add_ifset Unexecuted instantiation: thread.c:tick_add_ifset Unexecuted instantiation: tools.c:tick_add_ifset Unexecuted instantiation: trace.c:tick_add_ifset Unexecuted instantiation: vars.c:tick_add_ifset Unexecuted instantiation: acl.c:tick_add_ifset Unexecuted instantiation: action.c:tick_add_ifset Unexecuted instantiation: activity.c:tick_add_ifset Unexecuted instantiation: applet.c:tick_add_ifset Unexecuted instantiation: arg.c:tick_add_ifset Unexecuted instantiation: backend.c:tick_add_ifset Unexecuted instantiation: cache.c:tick_add_ifset Unexecuted instantiation: cfgcond.c:tick_add_ifset Unexecuted instantiation: cfgparse-global.c:tick_add_ifset Unexecuted instantiation: cfgparse-listen.c:tick_add_ifset Unexecuted instantiation: channel.c:tick_add_ifset Unexecuted instantiation: check.c:tick_add_ifset Unexecuted instantiation: compression.c:tick_add_ifset Unexecuted instantiation: dns.c:tick_add_ifset Unexecuted instantiation: dynbuf.c:tick_add_ifset Unexecuted instantiation: event_hdl.c:tick_add_ifset Unexecuted instantiation: extcheck.c:tick_add_ifset Unexecuted instantiation: fcgi-app.c:tick_add_ifset Unexecuted instantiation: fix.c:tick_add_ifset Unexecuted instantiation: flt_spoe.c:tick_add_ifset Unexecuted instantiation: h1.c:tick_add_ifset Unexecuted instantiation: http_fetch.c:tick_add_ifset Unexecuted instantiation: mqtt.c:tick_add_ifset Unexecuted instantiation: pattern.c:tick_add_ifset Unexecuted instantiation: payload.c:tick_add_ifset Unexecuted instantiation: pipe.c:tick_add_ifset Unexecuted instantiation: proto_tcp.c:tick_add_ifset Unexecuted instantiation: h1_htx.c:tick_add_ifset |
95 | | |
96 | | /* return 1 if timer <t1> is before <t2>, none of which can be infinite. */ |
97 | | static inline int tick_is_lt(int t1, int t2) |
98 | 0 | { |
99 | 0 | return (t1 - t2) < 0; |
100 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_is_lt Unexecuted instantiation: cfgparse.c:tick_is_lt Unexecuted instantiation: chunk.c:tick_is_lt Unexecuted instantiation: cli.c:tick_is_lt Unexecuted instantiation: clock.c:tick_is_lt Unexecuted instantiation: connection.c:tick_is_lt Unexecuted instantiation: debug.c:tick_is_lt Unexecuted instantiation: errors.c:tick_is_lt Unexecuted instantiation: fd.c:tick_is_lt Unexecuted instantiation: filters.c:tick_is_lt Unexecuted instantiation: flt_http_comp.c:tick_is_lt Unexecuted instantiation: freq_ctr.c:tick_is_lt Unexecuted instantiation: frontend.c:tick_is_lt Unexecuted instantiation: haproxy.c:tick_is_lt Unexecuted instantiation: http.c:tick_is_lt Unexecuted instantiation: http_ana.c:tick_is_lt Unexecuted instantiation: http_ext.c:tick_is_lt Unexecuted instantiation: http_htx.c:tick_is_lt Unexecuted instantiation: http_rules.c:tick_is_lt Unexecuted instantiation: htx.c:tick_is_lt Unexecuted instantiation: lb_chash.c:tick_is_lt Unexecuted instantiation: lb_fas.c:tick_is_lt Unexecuted instantiation: lb_fwlc.c:tick_is_lt Unexecuted instantiation: lb_fwrr.c:tick_is_lt Unexecuted instantiation: lb_map.c:tick_is_lt Unexecuted instantiation: listener.c:tick_is_lt Unexecuted instantiation: log.c:tick_is_lt Unexecuted instantiation: mailers.c:tick_is_lt Unexecuted instantiation: mworker.c:tick_is_lt Unexecuted instantiation: peers.c:tick_is_lt Unexecuted instantiation: pool.c:tick_is_lt Unexecuted instantiation: proto_sockpair.c:tick_is_lt Unexecuted instantiation: protocol.c:tick_is_lt Unexecuted instantiation: proxy.c:tick_is_lt Unexecuted instantiation: queue.c:tick_is_lt Unexecuted instantiation: regex.c:tick_is_lt Unexecuted instantiation: resolvers.c:tick_is_lt Unexecuted instantiation: ring.c:tick_is_lt Unexecuted instantiation: sample.c:tick_is_lt Unexecuted instantiation: server.c:tick_is_lt Unexecuted instantiation: session.c:tick_is_lt Unexecuted instantiation: signal.c:tick_is_lt Unexecuted instantiation: sink.c:tick_is_lt Unexecuted instantiation: sock.c:tick_is_lt Unexecuted instantiation: sock_inet.c:tick_is_lt Unexecuted instantiation: stats.c:tick_is_lt Unexecuted instantiation: stconn.c:tick_is_lt Unexecuted instantiation: stick_table.c:tick_is_lt Unexecuted instantiation: stream.c:tick_is_lt Unexecuted instantiation: task.c:tick_is_lt Unexecuted instantiation: tcp_rules.c:tick_is_lt Unexecuted instantiation: tcpcheck.c:tick_is_lt Unexecuted instantiation: thread.c:tick_is_lt Unexecuted instantiation: tools.c:tick_is_lt Unexecuted instantiation: trace.c:tick_is_lt Unexecuted instantiation: vars.c:tick_is_lt Unexecuted instantiation: acl.c:tick_is_lt Unexecuted instantiation: action.c:tick_is_lt Unexecuted instantiation: activity.c:tick_is_lt Unexecuted instantiation: applet.c:tick_is_lt Unexecuted instantiation: arg.c:tick_is_lt Unexecuted instantiation: backend.c:tick_is_lt Unexecuted instantiation: cache.c:tick_is_lt Unexecuted instantiation: cfgcond.c:tick_is_lt Unexecuted instantiation: cfgparse-global.c:tick_is_lt Unexecuted instantiation: cfgparse-listen.c:tick_is_lt Unexecuted instantiation: channel.c:tick_is_lt Unexecuted instantiation: check.c:tick_is_lt Unexecuted instantiation: compression.c:tick_is_lt Unexecuted instantiation: dns.c:tick_is_lt Unexecuted instantiation: dynbuf.c:tick_is_lt Unexecuted instantiation: event_hdl.c:tick_is_lt Unexecuted instantiation: extcheck.c:tick_is_lt Unexecuted instantiation: fcgi-app.c:tick_is_lt Unexecuted instantiation: fix.c:tick_is_lt Unexecuted instantiation: flt_spoe.c:tick_is_lt Unexecuted instantiation: h1.c:tick_is_lt Unexecuted instantiation: http_fetch.c:tick_is_lt Unexecuted instantiation: mqtt.c:tick_is_lt Unexecuted instantiation: pattern.c:tick_is_lt Unexecuted instantiation: payload.c:tick_is_lt Unexecuted instantiation: pipe.c:tick_is_lt Unexecuted instantiation: proto_tcp.c:tick_is_lt Unexecuted instantiation: h1_htx.c:tick_is_lt |
101 | | |
102 | | /* return 1 if timer <t1> is before or equal to <t2>, none of which can be infinite. */ |
103 | | static inline int tick_is_le(int t1, int t2) |
104 | 0 | { |
105 | 0 | return (t1 - t2) <= 0; |
106 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_is_le Unexecuted instantiation: cfgparse.c:tick_is_le Unexecuted instantiation: chunk.c:tick_is_le Unexecuted instantiation: cli.c:tick_is_le Unexecuted instantiation: clock.c:tick_is_le Unexecuted instantiation: connection.c:tick_is_le Unexecuted instantiation: debug.c:tick_is_le Unexecuted instantiation: errors.c:tick_is_le Unexecuted instantiation: fd.c:tick_is_le Unexecuted instantiation: filters.c:tick_is_le Unexecuted instantiation: flt_http_comp.c:tick_is_le Unexecuted instantiation: freq_ctr.c:tick_is_le Unexecuted instantiation: frontend.c:tick_is_le Unexecuted instantiation: haproxy.c:tick_is_le Unexecuted instantiation: http.c:tick_is_le Unexecuted instantiation: http_ana.c:tick_is_le Unexecuted instantiation: http_ext.c:tick_is_le Unexecuted instantiation: http_htx.c:tick_is_le Unexecuted instantiation: http_rules.c:tick_is_le Unexecuted instantiation: htx.c:tick_is_le Unexecuted instantiation: lb_chash.c:tick_is_le Unexecuted instantiation: lb_fas.c:tick_is_le Unexecuted instantiation: lb_fwlc.c:tick_is_le Unexecuted instantiation: lb_fwrr.c:tick_is_le Unexecuted instantiation: lb_map.c:tick_is_le Unexecuted instantiation: listener.c:tick_is_le Unexecuted instantiation: log.c:tick_is_le Unexecuted instantiation: mailers.c:tick_is_le Unexecuted instantiation: mworker.c:tick_is_le Unexecuted instantiation: peers.c:tick_is_le Unexecuted instantiation: pool.c:tick_is_le Unexecuted instantiation: proto_sockpair.c:tick_is_le Unexecuted instantiation: protocol.c:tick_is_le Unexecuted instantiation: proxy.c:tick_is_le Unexecuted instantiation: queue.c:tick_is_le Unexecuted instantiation: regex.c:tick_is_le Unexecuted instantiation: resolvers.c:tick_is_le Unexecuted instantiation: ring.c:tick_is_le Unexecuted instantiation: sample.c:tick_is_le Unexecuted instantiation: server.c:tick_is_le Unexecuted instantiation: session.c:tick_is_le Unexecuted instantiation: signal.c:tick_is_le Unexecuted instantiation: sink.c:tick_is_le Unexecuted instantiation: sock.c:tick_is_le Unexecuted instantiation: sock_inet.c:tick_is_le Unexecuted instantiation: stats.c:tick_is_le Unexecuted instantiation: stconn.c:tick_is_le Unexecuted instantiation: stick_table.c:tick_is_le Unexecuted instantiation: stream.c:tick_is_le Unexecuted instantiation: task.c:tick_is_le Unexecuted instantiation: tcp_rules.c:tick_is_le Unexecuted instantiation: tcpcheck.c:tick_is_le Unexecuted instantiation: thread.c:tick_is_le Unexecuted instantiation: tools.c:tick_is_le Unexecuted instantiation: trace.c:tick_is_le Unexecuted instantiation: vars.c:tick_is_le Unexecuted instantiation: acl.c:tick_is_le Unexecuted instantiation: action.c:tick_is_le Unexecuted instantiation: activity.c:tick_is_le Unexecuted instantiation: applet.c:tick_is_le Unexecuted instantiation: arg.c:tick_is_le Unexecuted instantiation: backend.c:tick_is_le Unexecuted instantiation: cache.c:tick_is_le Unexecuted instantiation: cfgcond.c:tick_is_le Unexecuted instantiation: cfgparse-global.c:tick_is_le Unexecuted instantiation: cfgparse-listen.c:tick_is_le Unexecuted instantiation: channel.c:tick_is_le Unexecuted instantiation: check.c:tick_is_le Unexecuted instantiation: compression.c:tick_is_le Unexecuted instantiation: dns.c:tick_is_le Unexecuted instantiation: dynbuf.c:tick_is_le Unexecuted instantiation: event_hdl.c:tick_is_le Unexecuted instantiation: extcheck.c:tick_is_le Unexecuted instantiation: fcgi-app.c:tick_is_le Unexecuted instantiation: fix.c:tick_is_le Unexecuted instantiation: flt_spoe.c:tick_is_le Unexecuted instantiation: h1.c:tick_is_le Unexecuted instantiation: http_fetch.c:tick_is_le Unexecuted instantiation: mqtt.c:tick_is_le Unexecuted instantiation: pattern.c:tick_is_le Unexecuted instantiation: payload.c:tick_is_le Unexecuted instantiation: pipe.c:tick_is_le Unexecuted instantiation: proto_tcp.c:tick_is_le Unexecuted instantiation: h1_htx.c:tick_is_le |
107 | | |
108 | | /* return 1 if timer <timer> is expired at date <now>, otherwise zero */ |
109 | | static inline int tick_is_expired(int timer, int now) |
110 | 0 | { |
111 | 0 | if (unlikely(!tick_isset(timer))) |
112 | 0 | return 0; |
113 | 0 | if (unlikely((timer - now) <= 0)) |
114 | 0 | return 1; |
115 | 0 | return 0; |
116 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_is_expired Unexecuted instantiation: cfgparse.c:tick_is_expired Unexecuted instantiation: chunk.c:tick_is_expired Unexecuted instantiation: cli.c:tick_is_expired Unexecuted instantiation: clock.c:tick_is_expired Unexecuted instantiation: connection.c:tick_is_expired Unexecuted instantiation: debug.c:tick_is_expired Unexecuted instantiation: errors.c:tick_is_expired Unexecuted instantiation: fd.c:tick_is_expired Unexecuted instantiation: filters.c:tick_is_expired Unexecuted instantiation: flt_http_comp.c:tick_is_expired Unexecuted instantiation: freq_ctr.c:tick_is_expired Unexecuted instantiation: frontend.c:tick_is_expired Unexecuted instantiation: haproxy.c:tick_is_expired Unexecuted instantiation: http.c:tick_is_expired Unexecuted instantiation: http_ana.c:tick_is_expired Unexecuted instantiation: http_ext.c:tick_is_expired Unexecuted instantiation: http_htx.c:tick_is_expired Unexecuted instantiation: http_rules.c:tick_is_expired Unexecuted instantiation: htx.c:tick_is_expired Unexecuted instantiation: lb_chash.c:tick_is_expired Unexecuted instantiation: lb_fas.c:tick_is_expired Unexecuted instantiation: lb_fwlc.c:tick_is_expired Unexecuted instantiation: lb_fwrr.c:tick_is_expired Unexecuted instantiation: lb_map.c:tick_is_expired Unexecuted instantiation: listener.c:tick_is_expired Unexecuted instantiation: log.c:tick_is_expired Unexecuted instantiation: mailers.c:tick_is_expired Unexecuted instantiation: mworker.c:tick_is_expired Unexecuted instantiation: peers.c:tick_is_expired Unexecuted instantiation: pool.c:tick_is_expired Unexecuted instantiation: proto_sockpair.c:tick_is_expired Unexecuted instantiation: protocol.c:tick_is_expired Unexecuted instantiation: proxy.c:tick_is_expired Unexecuted instantiation: queue.c:tick_is_expired Unexecuted instantiation: regex.c:tick_is_expired Unexecuted instantiation: resolvers.c:tick_is_expired Unexecuted instantiation: ring.c:tick_is_expired Unexecuted instantiation: sample.c:tick_is_expired Unexecuted instantiation: server.c:tick_is_expired Unexecuted instantiation: session.c:tick_is_expired Unexecuted instantiation: signal.c:tick_is_expired Unexecuted instantiation: sink.c:tick_is_expired Unexecuted instantiation: sock.c:tick_is_expired Unexecuted instantiation: sock_inet.c:tick_is_expired Unexecuted instantiation: stats.c:tick_is_expired Unexecuted instantiation: stconn.c:tick_is_expired Unexecuted instantiation: stick_table.c:tick_is_expired Unexecuted instantiation: stream.c:tick_is_expired Unexecuted instantiation: task.c:tick_is_expired Unexecuted instantiation: tcp_rules.c:tick_is_expired Unexecuted instantiation: tcpcheck.c:tick_is_expired Unexecuted instantiation: thread.c:tick_is_expired Unexecuted instantiation: tools.c:tick_is_expired Unexecuted instantiation: trace.c:tick_is_expired Unexecuted instantiation: vars.c:tick_is_expired Unexecuted instantiation: acl.c:tick_is_expired Unexecuted instantiation: action.c:tick_is_expired Unexecuted instantiation: activity.c:tick_is_expired Unexecuted instantiation: applet.c:tick_is_expired Unexecuted instantiation: arg.c:tick_is_expired Unexecuted instantiation: backend.c:tick_is_expired Unexecuted instantiation: cache.c:tick_is_expired Unexecuted instantiation: cfgcond.c:tick_is_expired Unexecuted instantiation: cfgparse-global.c:tick_is_expired Unexecuted instantiation: cfgparse-listen.c:tick_is_expired Unexecuted instantiation: channel.c:tick_is_expired Unexecuted instantiation: check.c:tick_is_expired Unexecuted instantiation: compression.c:tick_is_expired Unexecuted instantiation: dns.c:tick_is_expired Unexecuted instantiation: dynbuf.c:tick_is_expired Unexecuted instantiation: event_hdl.c:tick_is_expired Unexecuted instantiation: extcheck.c:tick_is_expired Unexecuted instantiation: fcgi-app.c:tick_is_expired Unexecuted instantiation: fix.c:tick_is_expired Unexecuted instantiation: flt_spoe.c:tick_is_expired Unexecuted instantiation: h1.c:tick_is_expired Unexecuted instantiation: http_fetch.c:tick_is_expired Unexecuted instantiation: mqtt.c:tick_is_expired Unexecuted instantiation: pattern.c:tick_is_expired Unexecuted instantiation: payload.c:tick_is_expired Unexecuted instantiation: pipe.c:tick_is_expired Unexecuted instantiation: proto_tcp.c:tick_is_expired Unexecuted instantiation: h1_htx.c:tick_is_expired |
117 | | |
118 | | /* return the first one of the two timers, both of which may be infinite */ |
119 | | static inline int tick_first(int t1, int t2) |
120 | 0 | { |
121 | 0 | if (!tick_isset(t1)) |
122 | 0 | return t2; |
123 | 0 | if (!tick_isset(t2)) |
124 | 0 | return t1; |
125 | 0 | if ((t1 - t2) <= 0) |
126 | 0 | return t1; |
127 | 0 | else |
128 | 0 | return t2; |
129 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_first Unexecuted instantiation: cfgparse.c:tick_first Unexecuted instantiation: chunk.c:tick_first Unexecuted instantiation: cli.c:tick_first Unexecuted instantiation: clock.c:tick_first Unexecuted instantiation: connection.c:tick_first Unexecuted instantiation: debug.c:tick_first Unexecuted instantiation: errors.c:tick_first Unexecuted instantiation: fd.c:tick_first Unexecuted instantiation: filters.c:tick_first Unexecuted instantiation: flt_http_comp.c:tick_first Unexecuted instantiation: freq_ctr.c:tick_first Unexecuted instantiation: frontend.c:tick_first Unexecuted instantiation: haproxy.c:tick_first Unexecuted instantiation: http.c:tick_first Unexecuted instantiation: http_ana.c:tick_first Unexecuted instantiation: http_ext.c:tick_first Unexecuted instantiation: http_htx.c:tick_first Unexecuted instantiation: http_rules.c:tick_first Unexecuted instantiation: htx.c:tick_first Unexecuted instantiation: lb_chash.c:tick_first Unexecuted instantiation: lb_fas.c:tick_first Unexecuted instantiation: lb_fwlc.c:tick_first Unexecuted instantiation: lb_fwrr.c:tick_first Unexecuted instantiation: lb_map.c:tick_first Unexecuted instantiation: listener.c:tick_first Unexecuted instantiation: log.c:tick_first Unexecuted instantiation: mailers.c:tick_first Unexecuted instantiation: mworker.c:tick_first Unexecuted instantiation: peers.c:tick_first Unexecuted instantiation: pool.c:tick_first Unexecuted instantiation: proto_sockpair.c:tick_first Unexecuted instantiation: protocol.c:tick_first Unexecuted instantiation: proxy.c:tick_first Unexecuted instantiation: queue.c:tick_first Unexecuted instantiation: regex.c:tick_first Unexecuted instantiation: resolvers.c:tick_first Unexecuted instantiation: ring.c:tick_first Unexecuted instantiation: sample.c:tick_first Unexecuted instantiation: server.c:tick_first Unexecuted instantiation: session.c:tick_first Unexecuted instantiation: signal.c:tick_first Unexecuted instantiation: sink.c:tick_first Unexecuted instantiation: sock.c:tick_first Unexecuted instantiation: sock_inet.c:tick_first Unexecuted instantiation: stats.c:tick_first Unexecuted instantiation: stconn.c:tick_first Unexecuted instantiation: stick_table.c:tick_first Unexecuted instantiation: stream.c:tick_first Unexecuted instantiation: task.c:tick_first Unexecuted instantiation: tcp_rules.c:tick_first Unexecuted instantiation: tcpcheck.c:tick_first Unexecuted instantiation: thread.c:tick_first Unexecuted instantiation: tools.c:tick_first Unexecuted instantiation: trace.c:tick_first Unexecuted instantiation: vars.c:tick_first Unexecuted instantiation: acl.c:tick_first Unexecuted instantiation: action.c:tick_first Unexecuted instantiation: activity.c:tick_first Unexecuted instantiation: applet.c:tick_first Unexecuted instantiation: arg.c:tick_first Unexecuted instantiation: backend.c:tick_first Unexecuted instantiation: cache.c:tick_first Unexecuted instantiation: cfgcond.c:tick_first Unexecuted instantiation: cfgparse-global.c:tick_first Unexecuted instantiation: cfgparse-listen.c:tick_first Unexecuted instantiation: channel.c:tick_first Unexecuted instantiation: check.c:tick_first Unexecuted instantiation: compression.c:tick_first Unexecuted instantiation: dns.c:tick_first Unexecuted instantiation: dynbuf.c:tick_first Unexecuted instantiation: event_hdl.c:tick_first Unexecuted instantiation: extcheck.c:tick_first Unexecuted instantiation: fcgi-app.c:tick_first Unexecuted instantiation: fix.c:tick_first Unexecuted instantiation: flt_spoe.c:tick_first Unexecuted instantiation: h1.c:tick_first Unexecuted instantiation: http_fetch.c:tick_first Unexecuted instantiation: mqtt.c:tick_first Unexecuted instantiation: pattern.c:tick_first Unexecuted instantiation: payload.c:tick_first Unexecuted instantiation: pipe.c:tick_first Unexecuted instantiation: proto_tcp.c:tick_first Unexecuted instantiation: h1_htx.c:tick_first |
130 | | |
131 | | /* return the first one of the two timers, where only the first one may be infinite */ |
132 | | static inline int tick_first_2nz(int t1, int t2) |
133 | 0 | { |
134 | 0 | if (!tick_isset(t1)) |
135 | 0 | return t2; |
136 | 0 | if ((t1 - t2) <= 0) |
137 | 0 | return t1; |
138 | 0 | else |
139 | 0 | return t2; |
140 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_first_2nz Unexecuted instantiation: cfgparse.c:tick_first_2nz Unexecuted instantiation: chunk.c:tick_first_2nz Unexecuted instantiation: cli.c:tick_first_2nz Unexecuted instantiation: clock.c:tick_first_2nz Unexecuted instantiation: connection.c:tick_first_2nz Unexecuted instantiation: debug.c:tick_first_2nz Unexecuted instantiation: errors.c:tick_first_2nz Unexecuted instantiation: fd.c:tick_first_2nz Unexecuted instantiation: filters.c:tick_first_2nz Unexecuted instantiation: flt_http_comp.c:tick_first_2nz Unexecuted instantiation: freq_ctr.c:tick_first_2nz Unexecuted instantiation: frontend.c:tick_first_2nz Unexecuted instantiation: haproxy.c:tick_first_2nz Unexecuted instantiation: http.c:tick_first_2nz Unexecuted instantiation: http_ana.c:tick_first_2nz Unexecuted instantiation: http_ext.c:tick_first_2nz Unexecuted instantiation: http_htx.c:tick_first_2nz Unexecuted instantiation: http_rules.c:tick_first_2nz Unexecuted instantiation: htx.c:tick_first_2nz Unexecuted instantiation: lb_chash.c:tick_first_2nz Unexecuted instantiation: lb_fas.c:tick_first_2nz Unexecuted instantiation: lb_fwlc.c:tick_first_2nz Unexecuted instantiation: lb_fwrr.c:tick_first_2nz Unexecuted instantiation: lb_map.c:tick_first_2nz Unexecuted instantiation: listener.c:tick_first_2nz Unexecuted instantiation: log.c:tick_first_2nz Unexecuted instantiation: mailers.c:tick_first_2nz Unexecuted instantiation: mworker.c:tick_first_2nz Unexecuted instantiation: peers.c:tick_first_2nz Unexecuted instantiation: pool.c:tick_first_2nz Unexecuted instantiation: proto_sockpair.c:tick_first_2nz Unexecuted instantiation: protocol.c:tick_first_2nz Unexecuted instantiation: proxy.c:tick_first_2nz Unexecuted instantiation: queue.c:tick_first_2nz Unexecuted instantiation: regex.c:tick_first_2nz Unexecuted instantiation: resolvers.c:tick_first_2nz Unexecuted instantiation: ring.c:tick_first_2nz Unexecuted instantiation: sample.c:tick_first_2nz Unexecuted instantiation: server.c:tick_first_2nz Unexecuted instantiation: session.c:tick_first_2nz Unexecuted instantiation: signal.c:tick_first_2nz Unexecuted instantiation: sink.c:tick_first_2nz Unexecuted instantiation: sock.c:tick_first_2nz Unexecuted instantiation: sock_inet.c:tick_first_2nz Unexecuted instantiation: stats.c:tick_first_2nz Unexecuted instantiation: stconn.c:tick_first_2nz Unexecuted instantiation: stick_table.c:tick_first_2nz Unexecuted instantiation: stream.c:tick_first_2nz Unexecuted instantiation: task.c:tick_first_2nz Unexecuted instantiation: tcp_rules.c:tick_first_2nz Unexecuted instantiation: tcpcheck.c:tick_first_2nz Unexecuted instantiation: thread.c:tick_first_2nz Unexecuted instantiation: tools.c:tick_first_2nz Unexecuted instantiation: trace.c:tick_first_2nz Unexecuted instantiation: vars.c:tick_first_2nz Unexecuted instantiation: acl.c:tick_first_2nz Unexecuted instantiation: action.c:tick_first_2nz Unexecuted instantiation: activity.c:tick_first_2nz Unexecuted instantiation: applet.c:tick_first_2nz Unexecuted instantiation: arg.c:tick_first_2nz Unexecuted instantiation: backend.c:tick_first_2nz Unexecuted instantiation: cache.c:tick_first_2nz Unexecuted instantiation: cfgcond.c:tick_first_2nz Unexecuted instantiation: cfgparse-global.c:tick_first_2nz Unexecuted instantiation: cfgparse-listen.c:tick_first_2nz Unexecuted instantiation: channel.c:tick_first_2nz Unexecuted instantiation: check.c:tick_first_2nz Unexecuted instantiation: compression.c:tick_first_2nz Unexecuted instantiation: dns.c:tick_first_2nz Unexecuted instantiation: dynbuf.c:tick_first_2nz Unexecuted instantiation: event_hdl.c:tick_first_2nz Unexecuted instantiation: extcheck.c:tick_first_2nz Unexecuted instantiation: fcgi-app.c:tick_first_2nz Unexecuted instantiation: fix.c:tick_first_2nz Unexecuted instantiation: flt_spoe.c:tick_first_2nz Unexecuted instantiation: h1.c:tick_first_2nz Unexecuted instantiation: http_fetch.c:tick_first_2nz Unexecuted instantiation: mqtt.c:tick_first_2nz Unexecuted instantiation: pattern.c:tick_first_2nz Unexecuted instantiation: payload.c:tick_first_2nz Unexecuted instantiation: pipe.c:tick_first_2nz Unexecuted instantiation: proto_tcp.c:tick_first_2nz Unexecuted instantiation: h1_htx.c:tick_first_2nz |
141 | | |
142 | | /* return the number of ticks remaining from <now> to <exp>, or zero if expired */ |
143 | | static inline int tick_remain(int now, int exp) |
144 | 0 | { |
145 | 0 | if (tick_is_expired(exp, now)) |
146 | 0 | return 0; |
147 | 0 | return exp - now; |
148 | 0 | } Unexecuted instantiation: fuzz_hpack_decode.c:tick_remain Unexecuted instantiation: cfgparse.c:tick_remain Unexecuted instantiation: chunk.c:tick_remain Unexecuted instantiation: cli.c:tick_remain Unexecuted instantiation: clock.c:tick_remain Unexecuted instantiation: connection.c:tick_remain Unexecuted instantiation: debug.c:tick_remain Unexecuted instantiation: errors.c:tick_remain Unexecuted instantiation: fd.c:tick_remain Unexecuted instantiation: filters.c:tick_remain Unexecuted instantiation: flt_http_comp.c:tick_remain Unexecuted instantiation: freq_ctr.c:tick_remain Unexecuted instantiation: frontend.c:tick_remain Unexecuted instantiation: haproxy.c:tick_remain Unexecuted instantiation: http.c:tick_remain Unexecuted instantiation: http_ana.c:tick_remain Unexecuted instantiation: http_ext.c:tick_remain Unexecuted instantiation: http_htx.c:tick_remain Unexecuted instantiation: http_rules.c:tick_remain Unexecuted instantiation: htx.c:tick_remain Unexecuted instantiation: lb_chash.c:tick_remain Unexecuted instantiation: lb_fas.c:tick_remain Unexecuted instantiation: lb_fwlc.c:tick_remain Unexecuted instantiation: lb_fwrr.c:tick_remain Unexecuted instantiation: lb_map.c:tick_remain Unexecuted instantiation: listener.c:tick_remain Unexecuted instantiation: log.c:tick_remain Unexecuted instantiation: mailers.c:tick_remain Unexecuted instantiation: mworker.c:tick_remain Unexecuted instantiation: peers.c:tick_remain Unexecuted instantiation: pool.c:tick_remain Unexecuted instantiation: proto_sockpair.c:tick_remain Unexecuted instantiation: protocol.c:tick_remain Unexecuted instantiation: proxy.c:tick_remain Unexecuted instantiation: queue.c:tick_remain Unexecuted instantiation: regex.c:tick_remain Unexecuted instantiation: resolvers.c:tick_remain Unexecuted instantiation: ring.c:tick_remain Unexecuted instantiation: sample.c:tick_remain Unexecuted instantiation: server.c:tick_remain Unexecuted instantiation: session.c:tick_remain Unexecuted instantiation: signal.c:tick_remain Unexecuted instantiation: sink.c:tick_remain Unexecuted instantiation: sock.c:tick_remain Unexecuted instantiation: sock_inet.c:tick_remain Unexecuted instantiation: stats.c:tick_remain Unexecuted instantiation: stconn.c:tick_remain Unexecuted instantiation: stick_table.c:tick_remain Unexecuted instantiation: stream.c:tick_remain Unexecuted instantiation: task.c:tick_remain Unexecuted instantiation: tcp_rules.c:tick_remain Unexecuted instantiation: tcpcheck.c:tick_remain Unexecuted instantiation: thread.c:tick_remain Unexecuted instantiation: tools.c:tick_remain Unexecuted instantiation: trace.c:tick_remain Unexecuted instantiation: vars.c:tick_remain Unexecuted instantiation: acl.c:tick_remain Unexecuted instantiation: action.c:tick_remain Unexecuted instantiation: activity.c:tick_remain Unexecuted instantiation: applet.c:tick_remain Unexecuted instantiation: arg.c:tick_remain Unexecuted instantiation: backend.c:tick_remain Unexecuted instantiation: cache.c:tick_remain Unexecuted instantiation: cfgcond.c:tick_remain Unexecuted instantiation: cfgparse-global.c:tick_remain Unexecuted instantiation: cfgparse-listen.c:tick_remain Unexecuted instantiation: channel.c:tick_remain Unexecuted instantiation: check.c:tick_remain Unexecuted instantiation: compression.c:tick_remain Unexecuted instantiation: dns.c:tick_remain Unexecuted instantiation: dynbuf.c:tick_remain Unexecuted instantiation: event_hdl.c:tick_remain Unexecuted instantiation: extcheck.c:tick_remain Unexecuted instantiation: fcgi-app.c:tick_remain Unexecuted instantiation: fix.c:tick_remain Unexecuted instantiation: flt_spoe.c:tick_remain Unexecuted instantiation: h1.c:tick_remain Unexecuted instantiation: http_fetch.c:tick_remain Unexecuted instantiation: mqtt.c:tick_remain Unexecuted instantiation: pattern.c:tick_remain Unexecuted instantiation: payload.c:tick_remain Unexecuted instantiation: pipe.c:tick_remain Unexecuted instantiation: proto_tcp.c:tick_remain Unexecuted instantiation: h1_htx.c:tick_remain |
149 | | |
150 | | #endif /* _HAPROXY_TICKS_H */ |
151 | | |
152 | | /* |
153 | | * Local variables: |
154 | | * c-indent-level: 8 |
155 | | * c-basic-offset: 8 |
156 | | * End: |
157 | | */ |