/src/h2o/include/h2o/linklist.h
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2014 DeNA Co., Ltd. |
3 | | * |
4 | | * Permission is hereby granted, free of charge, to any person obtaining a copy |
5 | | * of this software and associated documentation files (the "Software"), to |
6 | | * deal in the Software without restriction, including without limitation the |
7 | | * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
8 | | * sell copies of the Software, and to permit persons to whom the Software is |
9 | | * furnished to do so, subject to the following conditions: |
10 | | * |
11 | | * The above copyright notice and this permission notice shall be included in |
12 | | * all copies or substantial portions of the Software. |
13 | | * |
14 | | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
15 | | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
16 | | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
17 | | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
18 | | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
19 | | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS |
20 | | * IN THE SOFTWARE. |
21 | | */ |
22 | | #ifndef h2o__linklist_h |
23 | | #define h2o__linklist_h |
24 | | |
25 | | #ifdef __cplusplus |
26 | | extern "C" { |
27 | | #endif |
28 | | |
29 | | #include <assert.h> |
30 | | #include <stddef.h> |
31 | | |
32 | | /** |
33 | | * linklist |
34 | | * The structure is used to represent both nodes and the head of the list. |
35 | | * Nodes should be zero-filled upon initialization. |
36 | | * Heads should be initialized by calling h2o_linklist_init_anchor. |
37 | | */ |
38 | | typedef struct st_h2o_linklist_t { |
39 | | struct st_h2o_linklist_t *next; |
40 | | struct st_h2o_linklist_t *prev; |
41 | | } h2o_linklist_t; |
42 | | |
43 | | /** |
44 | | * initializes the anchor (i.e. head) of a linked list |
45 | | */ |
46 | | static void h2o_linklist_init_anchor(h2o_linklist_t *anchor); |
47 | | /** |
48 | | * tests if the list is empty |
49 | | */ |
50 | | static int h2o_linklist_is_empty(h2o_linklist_t *anchor); |
51 | | /** |
52 | | * tests if the node is linked to a list |
53 | | */ |
54 | | static int h2o_linklist_is_linked(h2o_linklist_t *node); |
55 | | /** |
56 | | * inserts a node to the linked list |
57 | | * @param pos insert position; the node will be inserted before pos |
58 | | * @param node the node to be inserted |
59 | | */ |
60 | | static void h2o_linklist_insert(h2o_linklist_t *pos, h2o_linklist_t *node); |
61 | | /** |
62 | | * inserts all the elements of list before pos (list becomes empty) |
63 | | */ |
64 | | static void h2o_linklist_insert_list(h2o_linklist_t *pos, h2o_linklist_t *list); |
65 | | /** |
66 | | * unlinks a node from the linked list |
67 | | */ |
68 | | static void h2o_linklist_unlink(h2o_linklist_t *node); |
69 | | |
70 | | /* inline defs */ |
71 | | |
72 | | inline void h2o_linklist_init_anchor(h2o_linklist_t *anchor) |
73 | 2.59M | { |
74 | 2.59M | anchor->next = anchor->prev = anchor; |
75 | 2.59M | } Unexecuted instantiation: driver.cc:h2o_linklist_init_anchor(st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_init_anchor(st_h2o_linklist_t*) multithread.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 9 | { | 74 | 9 | anchor->next = anchor->prev = anchor; | 75 | 9 | } |
socket.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 1.97M | { | 74 | 1.97M | anchor->next = anchor->prev = anchor; | 75 | 1.97M | } |
socketpool.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 9 | { | 74 | 9 | anchor->next = anchor->prev = anchor; | 75 | 9 | } |
timerwheel.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 21.3k | { | 74 | 21.3k | anchor->next = anchor->prev = anchor; | 75 | 21.3k | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_init_anchor config.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 3 | { | 74 | 3 | anchor->next = anchor->prev = anchor; | 75 | 3 | } |
Unexecuted instantiation: configurator.c:h2o_linklist_init_anchor context.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 12 | { | 74 | 12 | anchor->next = anchor->prev = anchor; | 75 | 12 | } |
Unexecuted instantiation: headers.c:h2o_linklist_init_anchor Unexecuted instantiation: request.c:h2o_linklist_init_anchor Unexecuted instantiation: util.c:h2o_linklist_init_anchor Unexecuted instantiation: access_log.c:h2o_linklist_init_anchor Unexecuted instantiation: file.c:h2o_linklist_init_anchor Unexecuted instantiation: mimemap.c:h2o_linklist_init_anchor Unexecuted instantiation: proxy.c:h2o_linklist_init_anchor Unexecuted instantiation: http1.c:h2o_linklist_init_anchor connection.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 35.0k | { | 74 | 35.0k | anchor->next = anchor->prev = anchor; | 75 | 35.0k | } |
scheduler.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 424k | { | 74 | 424k | anchor->next = anchor->prev = anchor; | 75 | 424k | } |
Unexecuted instantiation: stream.c:h2o_linklist_init_anchor Unexecuted instantiation: http2_debug_state.c:h2o_linklist_init_anchor Unexecuted instantiation: common.c:h2o_linklist_init_anchor server.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 140k | { | 74 | 140k | anchor->next = anchor->prev = anchor; | 75 | 140k | } |
Unexecuted instantiation: cache.c:h2o_linklist_init_anchor filecache.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 3 | { | 74 | 3 | anchor->next = anchor->prev = anchor; | 75 | 3 | } |
Unexecuted instantiation: hostinfo.c:h2o_linklist_init_anchor Unexecuted instantiation: http3client.c:h2o_linklist_init_anchor httpclient.c:h2o_linklist_init_anchor Line | Count | Source | 73 | 6 | { | 74 | 6 | anchor->next = anchor->prev = anchor; | 75 | 6 | } |
Unexecuted instantiation: memcached.c:h2o_linklist_init_anchor Unexecuted instantiation: redis.c:h2o_linklist_init_anchor Unexecuted instantiation: serverutil.c:h2o_linklist_init_anchor Unexecuted instantiation: absprio.c:h2o_linklist_init_anchor Unexecuted instantiation: logconf.c:h2o_linklist_init_anchor Unexecuted instantiation: compress.c:h2o_linklist_init_anchor Unexecuted instantiation: gzip.c:h2o_linklist_init_anchor Unexecuted instantiation: headers_util.c:h2o_linklist_init_anchor Unexecuted instantiation: frame.c:h2o_linklist_init_anchor Unexecuted instantiation: qpack.c:h2o_linklist_init_anchor Unexecuted instantiation: http1client.c:h2o_linklist_init_anchor Unexecuted instantiation: http2client.c:h2o_linklist_init_anchor Unexecuted instantiation: pipe_sender.c:h2o_linklist_init_anchor Unexecuted instantiation: driver_url.cc:h2o_linklist_init_anchor(st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_init_anchor(st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_init_anchor Unexecuted instantiation: errordoc.c:h2o_linklist_init_anchor Unexecuted instantiation: expires.c:h2o_linklist_init_anchor Unexecuted instantiation: fastcgi.c:h2o_linklist_init_anchor Unexecuted instantiation: h2olog.c:h2o_linklist_init_anchor Unexecuted instantiation: connect.c:h2o_linklist_init_anchor Unexecuted instantiation: redirect.c:h2o_linklist_init_anchor Unexecuted instantiation: reproxy.c:h2o_linklist_init_anchor Unexecuted instantiation: throttle_resp.c:h2o_linklist_init_anchor Unexecuted instantiation: self_trace.c:h2o_linklist_init_anchor Unexecuted instantiation: server_timing.c:h2o_linklist_init_anchor Unexecuted instantiation: status.c:h2o_linklist_init_anchor Unexecuted instantiation: events.c:h2o_linklist_init_anchor Unexecuted instantiation: memory.c:h2o_linklist_init_anchor Unexecuted instantiation: requests.c:h2o_linklist_init_anchor Unexecuted instantiation: ssl.c:h2o_linklist_init_anchor Unexecuted instantiation: durations.c:h2o_linklist_init_anchor Unexecuted instantiation: brotli.c:h2o_linklist_init_anchor |
76 | | |
77 | | inline int h2o_linklist_is_linked(h2o_linklist_t *node) |
78 | 1.53M | { |
79 | 1.53M | return node->next != NULL; |
80 | 1.53M | } Unexecuted instantiation: driver.cc:h2o_linklist_is_linked(st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_is_linked(st_h2o_linklist_t*) multithread.c:h2o_linklist_is_linked Line | Count | Source | 78 | 3 | { | 79 | | return node->next != NULL; | 80 | 3 | } |
Unexecuted instantiation: socket.c:h2o_linklist_is_linked Unexecuted instantiation: socketpool.c:h2o_linklist_is_linked timerwheel.c:h2o_linklist_is_linked Line | Count | Source | 78 | 198k | { | 79 | | return node->next != NULL; | 80 | 198k | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_is_linked Unexecuted instantiation: config.c:h2o_linklist_is_linked configurator.c:h2o_linklist_is_linked Line | Count | Source | 78 | 6 | { | 79 | | return node->next != NULL; | 80 | 6 | } |
context.c:h2o_linklist_is_linked Line | Count | Source | 78 | 49.7k | { | 79 | | return node->next != NULL; | 80 | 49.7k | } |
Unexecuted instantiation: headers.c:h2o_linklist_is_linked request.c:h2o_linklist_is_linked Line | Count | Source | 78 | 71.7k | { | 79 | | return node->next != NULL; | 80 | 71.7k | } |
Unexecuted instantiation: util.c:h2o_linklist_is_linked Unexecuted instantiation: access_log.c:h2o_linklist_is_linked Unexecuted instantiation: file.c:h2o_linklist_is_linked Unexecuted instantiation: mimemap.c:h2o_linklist_is_linked proxy.c:h2o_linklist_is_linked Line | Count | Source | 78 | 9.70k | { | 79 | | return node->next != NULL; | 80 | 9.70k | } |
http1.c:h2o_linklist_is_linked Line | Count | Source | 78 | 61.3k | { | 79 | | return node->next != NULL; | 80 | 61.3k | } |
connection.c:h2o_linklist_is_linked Line | Count | Source | 78 | 612k | { | 79 | | return node->next != NULL; | 80 | 612k | } |
scheduler.c:h2o_linklist_is_linked Line | Count | Source | 78 | 370k | { | 79 | | return node->next != NULL; | 80 | 370k | } |
stream.c:h2o_linklist_is_linked Line | Count | Source | 78 | 23.4k | { | 79 | | return node->next != NULL; | 80 | 23.4k | } |
Unexecuted instantiation: http2_debug_state.c:h2o_linklist_is_linked common.c:h2o_linklist_is_linked Line | Count | Source | 78 | 40.8k | { | 79 | | return node->next != NULL; | 80 | 40.8k | } |
server.c:h2o_linklist_is_linked Line | Count | Source | 78 | 46.5k | { | 79 | | return node->next != NULL; | 80 | 46.5k | } |
Unexecuted instantiation: cache.c:h2o_linklist_is_linked filecache.c:h2o_linklist_is_linked Line | Count | Source | 78 | 15.1k | { | 79 | | return node->next != NULL; | 80 | 15.1k | } |
Unexecuted instantiation: hostinfo.c:h2o_linklist_is_linked Unexecuted instantiation: http3client.c:h2o_linklist_is_linked httpclient.c:h2o_linklist_is_linked Line | Count | Source | 78 | 4.03k | { | 79 | | return node->next != NULL; | 80 | 4.03k | } |
Unexecuted instantiation: memcached.c:h2o_linklist_is_linked Unexecuted instantiation: redis.c:h2o_linklist_is_linked Unexecuted instantiation: serverutil.c:h2o_linklist_is_linked Unexecuted instantiation: absprio.c:h2o_linklist_is_linked Unexecuted instantiation: logconf.c:h2o_linklist_is_linked Unexecuted instantiation: compress.c:h2o_linklist_is_linked Unexecuted instantiation: gzip.c:h2o_linklist_is_linked Unexecuted instantiation: headers_util.c:h2o_linklist_is_linked Unexecuted instantiation: frame.c:h2o_linklist_is_linked Unexecuted instantiation: qpack.c:h2o_linklist_is_linked http1client.c:h2o_linklist_is_linked Line | Count | Source | 78 | 28.8k | { | 79 | | return node->next != NULL; | 80 | 28.8k | } |
Unexecuted instantiation: http2client.c:h2o_linklist_is_linked Unexecuted instantiation: pipe_sender.c:h2o_linklist_is_linked Unexecuted instantiation: driver_url.cc:h2o_linklist_is_linked(st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_is_linked(st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_is_linked Unexecuted instantiation: errordoc.c:h2o_linklist_is_linked Unexecuted instantiation: expires.c:h2o_linklist_is_linked Unexecuted instantiation: fastcgi.c:h2o_linklist_is_linked Unexecuted instantiation: h2olog.c:h2o_linklist_is_linked Unexecuted instantiation: connect.c:h2o_linklist_is_linked Unexecuted instantiation: redirect.c:h2o_linklist_is_linked Unexecuted instantiation: reproxy.c:h2o_linklist_is_linked Unexecuted instantiation: throttle_resp.c:h2o_linklist_is_linked Unexecuted instantiation: self_trace.c:h2o_linklist_is_linked Unexecuted instantiation: server_timing.c:h2o_linklist_is_linked Unexecuted instantiation: status.c:h2o_linklist_is_linked Unexecuted instantiation: events.c:h2o_linklist_is_linked Unexecuted instantiation: memory.c:h2o_linklist_is_linked Unexecuted instantiation: requests.c:h2o_linklist_is_linked Unexecuted instantiation: ssl.c:h2o_linklist_is_linked Unexecuted instantiation: durations.c:h2o_linklist_is_linked Unexecuted instantiation: brotli.c:h2o_linklist_is_linked |
81 | | |
82 | | inline int h2o_linklist_is_empty(h2o_linklist_t *anchor) |
83 | 12.6M | { |
84 | 12.6M | return anchor->next == anchor; |
85 | 12.6M | } Unexecuted instantiation: driver.cc:h2o_linklist_is_empty(st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_is_empty(st_h2o_linklist_t*) Unexecuted instantiation: multithread.c:h2o_linklist_is_empty socket.c:h2o_linklist_is_empty Line | Count | Source | 83 | 1.99M | { | 84 | 1.99M | return anchor->next == anchor; | 85 | 1.99M | } |
socketpool.c:h2o_linklist_is_empty Line | Count | Source | 83 | 7.93k | { | 84 | 7.93k | return anchor->next == anchor; | 85 | 7.93k | } |
timerwheel.c:h2o_linklist_is_empty Line | Count | Source | 83 | 10.2M | { | 84 | 10.2M | return anchor->next == anchor; | 85 | 10.2M | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_is_empty Unexecuted instantiation: config.c:h2o_linklist_is_empty Unexecuted instantiation: configurator.c:h2o_linklist_is_empty Unexecuted instantiation: context.c:h2o_linklist_is_empty Unexecuted instantiation: headers.c:h2o_linklist_is_empty Unexecuted instantiation: request.c:h2o_linklist_is_empty Unexecuted instantiation: util.c:h2o_linklist_is_empty Unexecuted instantiation: access_log.c:h2o_linklist_is_empty Unexecuted instantiation: file.c:h2o_linklist_is_empty Unexecuted instantiation: mimemap.c:h2o_linklist_is_empty Unexecuted instantiation: proxy.c:h2o_linklist_is_empty Unexecuted instantiation: http1.c:h2o_linklist_is_empty connection.c:h2o_linklist_is_empty Line | Count | Source | 83 | 57.6k | { | 84 | 57.6k | return anchor->next == anchor; | 85 | 57.6k | } |
scheduler.c:h2o_linklist_is_empty Line | Count | Source | 83 | 233k | { | 84 | 233k | return anchor->next == anchor; | 85 | 233k | } |
Unexecuted instantiation: stream.c:h2o_linklist_is_empty Unexecuted instantiation: http2_debug_state.c:h2o_linklist_is_empty Unexecuted instantiation: common.c:h2o_linklist_is_empty server.c:h2o_linklist_is_empty Line | Count | Source | 83 | 133k | { | 84 | 133k | return anchor->next == anchor; | 85 | 133k | } |
Unexecuted instantiation: cache.c:h2o_linklist_is_empty Unexecuted instantiation: filecache.c:h2o_linklist_is_empty Unexecuted instantiation: hostinfo.c:h2o_linklist_is_empty Unexecuted instantiation: http3client.c:h2o_linklist_is_empty Unexecuted instantiation: httpclient.c:h2o_linklist_is_empty Unexecuted instantiation: memcached.c:h2o_linklist_is_empty Unexecuted instantiation: redis.c:h2o_linklist_is_empty Unexecuted instantiation: serverutil.c:h2o_linklist_is_empty Unexecuted instantiation: absprio.c:h2o_linklist_is_empty Unexecuted instantiation: logconf.c:h2o_linklist_is_empty Unexecuted instantiation: compress.c:h2o_linklist_is_empty Unexecuted instantiation: gzip.c:h2o_linklist_is_empty Unexecuted instantiation: headers_util.c:h2o_linklist_is_empty Unexecuted instantiation: frame.c:h2o_linklist_is_empty Unexecuted instantiation: qpack.c:h2o_linklist_is_empty Unexecuted instantiation: http1client.c:h2o_linklist_is_empty Unexecuted instantiation: http2client.c:h2o_linklist_is_empty Unexecuted instantiation: pipe_sender.c:h2o_linklist_is_empty Unexecuted instantiation: driver_url.cc:h2o_linklist_is_empty(st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_is_empty(st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_is_empty Unexecuted instantiation: errordoc.c:h2o_linklist_is_empty Unexecuted instantiation: expires.c:h2o_linklist_is_empty Unexecuted instantiation: fastcgi.c:h2o_linklist_is_empty Unexecuted instantiation: h2olog.c:h2o_linklist_is_empty Unexecuted instantiation: connect.c:h2o_linklist_is_empty Unexecuted instantiation: redirect.c:h2o_linklist_is_empty Unexecuted instantiation: reproxy.c:h2o_linklist_is_empty Unexecuted instantiation: throttle_resp.c:h2o_linklist_is_empty Unexecuted instantiation: self_trace.c:h2o_linklist_is_empty Unexecuted instantiation: server_timing.c:h2o_linklist_is_empty Unexecuted instantiation: status.c:h2o_linklist_is_empty Unexecuted instantiation: events.c:h2o_linklist_is_empty Unexecuted instantiation: memory.c:h2o_linklist_is_empty Unexecuted instantiation: requests.c:h2o_linklist_is_empty Unexecuted instantiation: ssl.c:h2o_linklist_is_empty Unexecuted instantiation: durations.c:h2o_linklist_is_empty Unexecuted instantiation: brotli.c:h2o_linklist_is_empty |
86 | | |
87 | | inline void h2o_linklist_insert(h2o_linklist_t *pos, h2o_linklist_t *node) |
88 | 435k | { |
89 | 435k | assert(!h2o_linklist_is_linked(node)); |
90 | | |
91 | 435k | node->prev = pos->prev; |
92 | 435k | node->next = pos; |
93 | 435k | node->prev->next = node; |
94 | 435k | node->next->prev = node; |
95 | 435k | } Unexecuted instantiation: driver.cc:h2o_linklist_insert(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_insert(st_h2o_linklist_t*, st_h2o_linklist_t*) multithread.c:h2o_linklist_insert Line | Count | Source | 88 | 3 | { | 89 | 3 | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 3 | node->prev = pos->prev; | 92 | 3 | node->next = pos; | 93 | 3 | node->prev->next = node; | 94 | 3 | node->next->prev = node; | 95 | 3 | } |
Unexecuted instantiation: socket.c:h2o_linklist_insert Unexecuted instantiation: socketpool.c:h2o_linklist_insert timerwheel.c:h2o_linklist_insert Line | Count | Source | 88 | 198k | { | 89 | 198k | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 198k | node->prev = pos->prev; | 92 | 198k | node->next = pos; | 93 | 198k | node->prev->next = node; | 94 | 198k | node->next->prev = node; | 95 | 198k | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_insert Unexecuted instantiation: config.c:h2o_linklist_insert configurator.c:h2o_linklist_insert Line | Count | Source | 88 | 6 | { | 89 | 6 | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 6 | node->prev = pos->prev; | 92 | 6 | node->next = pos; | 93 | 6 | node->prev->next = node; | 94 | 6 | node->next->prev = node; | 95 | 6 | } |
context.c:h2o_linklist_insert Line | Count | Source | 88 | 49.7k | { | 89 | 49.7k | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 49.7k | node->prev = pos->prev; | 92 | 49.7k | node->next = pos; | 93 | 49.7k | node->prev->next = node; | 94 | 49.7k | node->next->prev = node; | 95 | 49.7k | } |
Unexecuted instantiation: headers.c:h2o_linklist_insert Unexecuted instantiation: request.c:h2o_linklist_insert Unexecuted instantiation: util.c:h2o_linklist_insert Unexecuted instantiation: access_log.c:h2o_linklist_insert Unexecuted instantiation: file.c:h2o_linklist_insert Unexecuted instantiation: mimemap.c:h2o_linklist_insert Unexecuted instantiation: proxy.c:h2o_linklist_insert Unexecuted instantiation: http1.c:h2o_linklist_insert connection.c:h2o_linklist_insert Line | Count | Source | 88 | 12.1k | { | 89 | 12.1k | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 12.1k | node->prev = pos->prev; | 92 | 12.1k | node->next = pos; | 93 | 12.1k | node->prev->next = node; | 94 | 12.1k | node->next->prev = node; | 95 | 12.1k | } |
scheduler.c:h2o_linklist_insert Line | Count | Source | 88 | 172k | { | 89 | 172k | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 172k | node->prev = pos->prev; | 92 | 172k | node->next = pos; | 93 | 172k | node->prev->next = node; | 94 | 172k | node->next->prev = node; | 95 | 172k | } |
stream.c:h2o_linklist_insert Line | Count | Source | 88 | 8 | { | 89 | 8 | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 8 | node->prev = pos->prev; | 92 | 8 | node->next = pos; | 93 | 8 | node->prev->next = node; | 94 | 8 | node->next->prev = node; | 95 | 8 | } |
Unexecuted instantiation: http2_debug_state.c:h2o_linklist_insert Unexecuted instantiation: common.c:h2o_linklist_insert server.c:h2o_linklist_insert Line | Count | Source | 88 | 2.72k | { | 89 | 2.72k | assert(!h2o_linklist_is_linked(node)); | 90 | | | 91 | 2.72k | node->prev = pos->prev; | 92 | 2.72k | node->next = pos; | 93 | 2.72k | node->prev->next = node; | 94 | 2.72k | node->next->prev = node; | 95 | 2.72k | } |
Unexecuted instantiation: cache.c:h2o_linklist_insert Unexecuted instantiation: filecache.c:h2o_linklist_insert Unexecuted instantiation: hostinfo.c:h2o_linklist_insert Unexecuted instantiation: http3client.c:h2o_linklist_insert Unexecuted instantiation: httpclient.c:h2o_linklist_insert Unexecuted instantiation: memcached.c:h2o_linklist_insert Unexecuted instantiation: redis.c:h2o_linklist_insert Unexecuted instantiation: serverutil.c:h2o_linklist_insert Unexecuted instantiation: absprio.c:h2o_linklist_insert Unexecuted instantiation: logconf.c:h2o_linklist_insert Unexecuted instantiation: compress.c:h2o_linklist_insert Unexecuted instantiation: gzip.c:h2o_linklist_insert Unexecuted instantiation: headers_util.c:h2o_linklist_insert Unexecuted instantiation: frame.c:h2o_linklist_insert Unexecuted instantiation: qpack.c:h2o_linklist_insert Unexecuted instantiation: http1client.c:h2o_linklist_insert Unexecuted instantiation: http2client.c:h2o_linklist_insert Unexecuted instantiation: pipe_sender.c:h2o_linklist_insert Unexecuted instantiation: driver_url.cc:h2o_linklist_insert(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_insert(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_insert Unexecuted instantiation: errordoc.c:h2o_linklist_insert Unexecuted instantiation: expires.c:h2o_linklist_insert Unexecuted instantiation: fastcgi.c:h2o_linklist_insert Unexecuted instantiation: h2olog.c:h2o_linklist_insert Unexecuted instantiation: connect.c:h2o_linklist_insert Unexecuted instantiation: redirect.c:h2o_linklist_insert Unexecuted instantiation: reproxy.c:h2o_linklist_insert Unexecuted instantiation: throttle_resp.c:h2o_linklist_insert Unexecuted instantiation: self_trace.c:h2o_linklist_insert Unexecuted instantiation: server_timing.c:h2o_linklist_insert Unexecuted instantiation: status.c:h2o_linklist_insert Unexecuted instantiation: events.c:h2o_linklist_insert Unexecuted instantiation: memory.c:h2o_linklist_insert Unexecuted instantiation: requests.c:h2o_linklist_insert Unexecuted instantiation: ssl.c:h2o_linklist_insert Unexecuted instantiation: durations.c:h2o_linklist_insert Unexecuted instantiation: brotli.c:h2o_linklist_insert |
96 | | |
97 | | inline void h2o_linklist_insert_list(h2o_linklist_t *pos, h2o_linklist_t *list) |
98 | 2.23M | { |
99 | 2.23M | if (h2o_linklist_is_empty(list)) |
100 | 2.21M | return; |
101 | 25.8k | list->next->prev = pos->prev; |
102 | 25.8k | list->prev->next = pos; |
103 | 25.8k | pos->prev->next = list->next; |
104 | 25.8k | pos->prev = list->prev; |
105 | 25.8k | h2o_linklist_init_anchor(list); |
106 | 25.8k | } Unexecuted instantiation: driver.cc:h2o_linklist_insert_list(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_insert_list(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: multithread.c:h2o_linklist_insert_list Unexecuted instantiation: socket.c:h2o_linklist_insert_list Unexecuted instantiation: socketpool.c:h2o_linklist_insert_list timerwheel.c:h2o_linklist_insert_list Line | Count | Source | 98 | 2.23M | { | 99 | 2.23M | if (h2o_linklist_is_empty(list)) | 100 | 2.21M | return; | 101 | 21.0k | list->next->prev = pos->prev; | 102 | 21.0k | list->prev->next = pos; | 103 | 21.0k | pos->prev->next = list->next; | 104 | 21.0k | pos->prev = list->prev; | 105 | 21.0k | h2o_linklist_init_anchor(list); | 106 | 21.0k | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_insert_list Unexecuted instantiation: config.c:h2o_linklist_insert_list Unexecuted instantiation: configurator.c:h2o_linklist_insert_list Unexecuted instantiation: context.c:h2o_linklist_insert_list Unexecuted instantiation: headers.c:h2o_linklist_insert_list Unexecuted instantiation: request.c:h2o_linklist_insert_list Unexecuted instantiation: util.c:h2o_linklist_insert_list Unexecuted instantiation: access_log.c:h2o_linklist_insert_list Unexecuted instantiation: file.c:h2o_linklist_insert_list Unexecuted instantiation: mimemap.c:h2o_linklist_insert_list Unexecuted instantiation: proxy.c:h2o_linklist_insert_list Unexecuted instantiation: http1.c:h2o_linklist_insert_list Unexecuted instantiation: connection.c:h2o_linklist_insert_list scheduler.c:h2o_linklist_insert_list Line | Count | Source | 98 | 4.79k | { | 99 | 4.79k | if (h2o_linklist_is_empty(list)) | 100 | 0 | return; | 101 | 4.79k | list->next->prev = pos->prev; | 102 | 4.79k | list->prev->next = pos; | 103 | 4.79k | pos->prev->next = list->next; | 104 | 4.79k | pos->prev = list->prev; | 105 | 4.79k | h2o_linklist_init_anchor(list); | 106 | 4.79k | } |
Unexecuted instantiation: stream.c:h2o_linklist_insert_list Unexecuted instantiation: http2_debug_state.c:h2o_linklist_insert_list Unexecuted instantiation: common.c:h2o_linklist_insert_list Unexecuted instantiation: server.c:h2o_linklist_insert_list Unexecuted instantiation: cache.c:h2o_linklist_insert_list Unexecuted instantiation: filecache.c:h2o_linklist_insert_list Unexecuted instantiation: hostinfo.c:h2o_linklist_insert_list Unexecuted instantiation: http3client.c:h2o_linklist_insert_list Unexecuted instantiation: httpclient.c:h2o_linklist_insert_list Unexecuted instantiation: memcached.c:h2o_linklist_insert_list Unexecuted instantiation: redis.c:h2o_linklist_insert_list Unexecuted instantiation: serverutil.c:h2o_linklist_insert_list Unexecuted instantiation: absprio.c:h2o_linklist_insert_list Unexecuted instantiation: logconf.c:h2o_linklist_insert_list Unexecuted instantiation: compress.c:h2o_linklist_insert_list Unexecuted instantiation: gzip.c:h2o_linklist_insert_list Unexecuted instantiation: headers_util.c:h2o_linklist_insert_list Unexecuted instantiation: frame.c:h2o_linklist_insert_list Unexecuted instantiation: qpack.c:h2o_linklist_insert_list Unexecuted instantiation: http1client.c:h2o_linklist_insert_list Unexecuted instantiation: http2client.c:h2o_linklist_insert_list Unexecuted instantiation: pipe_sender.c:h2o_linklist_insert_list Unexecuted instantiation: driver_url.cc:h2o_linklist_insert_list(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_insert_list(st_h2o_linklist_t*, st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_insert_list Unexecuted instantiation: errordoc.c:h2o_linklist_insert_list Unexecuted instantiation: expires.c:h2o_linklist_insert_list Unexecuted instantiation: fastcgi.c:h2o_linklist_insert_list Unexecuted instantiation: h2olog.c:h2o_linklist_insert_list Unexecuted instantiation: connect.c:h2o_linklist_insert_list Unexecuted instantiation: redirect.c:h2o_linklist_insert_list Unexecuted instantiation: reproxy.c:h2o_linklist_insert_list Unexecuted instantiation: throttle_resp.c:h2o_linklist_insert_list Unexecuted instantiation: self_trace.c:h2o_linklist_insert_list Unexecuted instantiation: server_timing.c:h2o_linklist_insert_list Unexecuted instantiation: status.c:h2o_linklist_insert_list Unexecuted instantiation: events.c:h2o_linklist_insert_list Unexecuted instantiation: memory.c:h2o_linklist_insert_list Unexecuted instantiation: requests.c:h2o_linklist_insert_list Unexecuted instantiation: ssl.c:h2o_linklist_insert_list Unexecuted instantiation: durations.c:h2o_linklist_insert_list Unexecuted instantiation: brotli.c:h2o_linklist_insert_list |
107 | | |
108 | | inline void h2o_linklist_unlink(h2o_linklist_t *node) |
109 | 435k | { |
110 | 435k | node->next->prev = node->prev; |
111 | 435k | node->prev->next = node->next; |
112 | | node->next = node->prev = NULL; |
113 | 435k | } Unexecuted instantiation: driver.cc:h2o_linklist_unlink(st_h2o_linklist_t*) Unexecuted instantiation: driver_common.cc:h2o_linklist_unlink(st_h2o_linklist_t*) Unexecuted instantiation: multithread.c:h2o_linklist_unlink socket.c:h2o_linklist_unlink Line | Count | Source | 109 | 21.0k | { | 110 | 21.0k | node->next->prev = node->prev; | 111 | 21.0k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 21.0k | } |
Unexecuted instantiation: socketpool.c:h2o_linklist_unlink timerwheel.c:h2o_linklist_unlink Line | Count | Source | 109 | 54 | { | 110 | 54 | node->next->prev = node->prev; | 111 | 54 | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 54 | } |
Unexecuted instantiation: roundrobin.c:h2o_linklist_unlink Unexecuted instantiation: config.c:h2o_linklist_unlink Unexecuted instantiation: configurator.c:h2o_linklist_unlink context.c:h2o_linklist_unlink Line | Count | Source | 109 | 49.7k | { | 110 | 49.7k | node->next->prev = node->prev; | 111 | 49.7k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 49.7k | } |
Unexecuted instantiation: headers.c:h2o_linklist_unlink Unexecuted instantiation: request.c:h2o_linklist_unlink Unexecuted instantiation: util.c:h2o_linklist_unlink Unexecuted instantiation: access_log.c:h2o_linklist_unlink Unexecuted instantiation: file.c:h2o_linklist_unlink Unexecuted instantiation: mimemap.c:h2o_linklist_unlink proxy.c:h2o_linklist_unlink Line | Count | Source | 109 | 2.85k | { | 110 | 2.85k | node->next->prev = node->prev; | 111 | 2.85k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 2.85k | } |
http1.c:h2o_linklist_unlink Line | Count | Source | 109 | 59.3k | { | 110 | 59.3k | node->next->prev = node->prev; | 111 | 59.3k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 59.3k | } |
connection.c:h2o_linklist_unlink Line | Count | Source | 109 | 110k | { | 110 | 110k | node->next->prev = node->prev; | 111 | 110k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 110k | } |
scheduler.c:h2o_linklist_unlink Line | Count | Source | 109 | 172k | { | 110 | 172k | node->next->prev = node->prev; | 111 | 172k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 172k | } |
Unexecuted instantiation: stream.c:h2o_linklist_unlink Unexecuted instantiation: http2_debug_state.c:h2o_linklist_unlink common.c:h2o_linklist_unlink Line | Count | Source | 109 | 101 | { | 110 | 101 | node->next->prev = node->prev; | 111 | 101 | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 101 | } |
server.c:h2o_linklist_unlink Line | Count | Source | 109 | 2.72k | { | 110 | 2.72k | node->next->prev = node->prev; | 111 | 2.72k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 2.72k | } |
Unexecuted instantiation: cache.c:h2o_linklist_unlink Unexecuted instantiation: filecache.c:h2o_linklist_unlink Unexecuted instantiation: hostinfo.c:h2o_linklist_unlink Unexecuted instantiation: http3client.c:h2o_linklist_unlink httpclient.c:h2o_linklist_unlink Line | Count | Source | 109 | 3.96k | { | 110 | 3.96k | node->next->prev = node->prev; | 111 | 3.96k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 3.96k | } |
Unexecuted instantiation: memcached.c:h2o_linklist_unlink Unexecuted instantiation: redis.c:h2o_linklist_unlink Unexecuted instantiation: serverutil.c:h2o_linklist_unlink Unexecuted instantiation: absprio.c:h2o_linklist_unlink Unexecuted instantiation: logconf.c:h2o_linklist_unlink Unexecuted instantiation: compress.c:h2o_linklist_unlink Unexecuted instantiation: gzip.c:h2o_linklist_unlink Unexecuted instantiation: headers_util.c:h2o_linklist_unlink Unexecuted instantiation: frame.c:h2o_linklist_unlink Unexecuted instantiation: qpack.c:h2o_linklist_unlink http1client.c:h2o_linklist_unlink Line | Count | Source | 109 | 12.8k | { | 110 | 12.8k | node->next->prev = node->prev; | 111 | 12.8k | node->prev->next = node->next; | 112 | | node->next = node->prev = NULL; | 113 | 12.8k | } |
Unexecuted instantiation: http2client.c:h2o_linklist_unlink Unexecuted instantiation: pipe_sender.c:h2o_linklist_unlink Unexecuted instantiation: driver_url.cc:h2o_linklist_unlink(st_h2o_linklist_t*) Unexecuted instantiation: driver_h3.cc:h2o_linklist_unlink(st_h2o_linklist_t*) Unexecuted instantiation: least_conn.c:h2o_linklist_unlink Unexecuted instantiation: errordoc.c:h2o_linklist_unlink Unexecuted instantiation: expires.c:h2o_linklist_unlink Unexecuted instantiation: fastcgi.c:h2o_linklist_unlink Unexecuted instantiation: h2olog.c:h2o_linklist_unlink Unexecuted instantiation: connect.c:h2o_linklist_unlink Unexecuted instantiation: redirect.c:h2o_linklist_unlink Unexecuted instantiation: reproxy.c:h2o_linklist_unlink Unexecuted instantiation: throttle_resp.c:h2o_linklist_unlink Unexecuted instantiation: self_trace.c:h2o_linklist_unlink Unexecuted instantiation: server_timing.c:h2o_linklist_unlink Unexecuted instantiation: status.c:h2o_linklist_unlink Unexecuted instantiation: events.c:h2o_linklist_unlink Unexecuted instantiation: memory.c:h2o_linklist_unlink Unexecuted instantiation: requests.c:h2o_linklist_unlink Unexecuted instantiation: ssl.c:h2o_linklist_unlink Unexecuted instantiation: durations.c:h2o_linklist_unlink Unexecuted instantiation: brotli.c:h2o_linklist_unlink |
114 | | |
115 | | #ifdef __cplusplus |
116 | | } |
117 | | #endif |
118 | | |
119 | | #endif |