Coverage Report

Created: 2026-06-07 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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
1.32M
{
74
1.32M
    anchor->next = anchor->prev = anchor;
75
1.32M
}
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
687k
{
74
687k
    anchor->next = anchor->prev = anchor;
75
687k
}
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
20.3k
{
74
20.3k
    anchor->next = anchor->prev = anchor;
75
20.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
37.9k
{
74
37.9k
    anchor->next = anchor->prev = anchor;
75
37.9k
}
scheduler.c:h2o_linklist_init_anchor
Line
Count
Source
73
443k
{
74
443k
    anchor->next = anchor->prev = anchor;
75
443k
}
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
139k
{
74
139k
    anchor->next = anchor->prev = anchor;
75
139k
}
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.60M
{
79
1.60M
    return node->next != NULL;
80
1.60M
}
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
203k
{
79
    return node->next != NULL;
80
203k
}
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
52.2k
{
79
    return node->next != NULL;
80
52.2k
}
Unexecuted instantiation: headers.c:h2o_linklist_is_linked
request.c:h2o_linklist_is_linked
Line
Count
Source
78
76.0k
{
79
    return node->next != NULL;
80
76.0k
}
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.05k
{
79
    return node->next != NULL;
80
9.05k
}
http1.c:h2o_linklist_is_linked
Line
Count
Source
78
62.5k
{
79
    return node->next != NULL;
80
62.5k
}
connection.c:h2o_linklist_is_linked
Line
Count
Source
78
657k
{
79
    return node->next != NULL;
80
657k
}
scheduler.c:h2o_linklist_is_linked
Line
Count
Source
78
384k
{
79
    return node->next != NULL;
80
384k
}
stream.c:h2o_linklist_is_linked
Line
Count
Source
78
24.4k
{
79
    return node->next != NULL;
80
24.4k
}
Unexecuted instantiation: http2_debug_state.c:h2o_linklist_is_linked
common.c:h2o_linklist_is_linked
Line
Count
Source
78
39.7k
{
79
    return node->next != NULL;
80
39.7k
}
server.c:h2o_linklist_is_linked
Line
Count
Source
78
44.8k
{
79
    return node->next != NULL;
80
44.8k
}
Unexecuted instantiation: cache.c:h2o_linklist_is_linked
filecache.c:h2o_linklist_is_linked
Line
Count
Source
78
15.6k
{
79
    return node->next != NULL;
80
15.6k
}
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
3.82k
{
79
    return node->next != NULL;
80
3.82k
}
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
27.1k
{
79
    return node->next != NULL;
80
27.1k
}
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
7.66M
{
84
7.66M
    return anchor->next == anchor;
85
7.66M
}
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
707k
{
84
707k
    return anchor->next == anchor;
85
707k
}
socketpool.c:h2o_linklist_is_empty
Line
Count
Source
83
7.48k
{
84
7.48k
    return anchor->next == anchor;
85
7.48k
}
timerwheel.c:h2o_linklist_is_empty
Line
Count
Source
83
6.51M
{
84
6.51M
    return anchor->next == anchor;
85
6.51M
}
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
61.1k
{
84
61.1k
    return anchor->next == anchor;
85
61.1k
}
scheduler.c:h2o_linklist_is_empty
Line
Count
Source
83
242k
{
84
242k
    return anchor->next == anchor;
85
242k
}
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
128k
{
84
128k
    return anchor->next == anchor;
85
128k
}
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
450k
{
89
450k
    assert(!h2o_linklist_is_linked(node));
90
91
450k
    node->prev = pos->prev;
92
450k
    node->next = pos;
93
450k
    node->prev->next = node;
94
450k
    node->next->prev = node;
95
450k
}
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
203k
{
89
203k
    assert(!h2o_linklist_is_linked(node));
90
91
203k
    node->prev = pos->prev;
92
203k
    node->next = pos;
93
203k
    node->prev->next = node;
94
203k
    node->next->prev = node;
95
203k
}
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
52.2k
{
89
52.2k
    assert(!h2o_linklist_is_linked(node));
90
91
52.2k
    node->prev = pos->prev;
92
52.2k
    node->next = pos;
93
52.2k
    node->prev->next = node;
94
52.2k
    node->next->prev = node;
95
52.2k
}
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.5k
{
89
12.5k
    assert(!h2o_linklist_is_linked(node));
90
91
12.5k
    node->prev = pos->prev;
92
12.5k
    node->next = pos;
93
12.5k
    node->prev->next = node;
94
12.5k
    node->next->prev = node;
95
12.5k
}
scheduler.c:h2o_linklist_insert
Line
Count
Source
88
180k
{
89
180k
    assert(!h2o_linklist_is_linked(node));
90
91
180k
    node->prev = pos->prev;
92
180k
    node->next = pos;
93
180k
    node->prev->next = node;
94
180k
    node->next->prev = node;
95
180k
}
stream.c:h2o_linklist_insert
Line
Count
Source
88
7
{
89
7
    assert(!h2o_linklist_is_linked(node));
90
91
7
    node->prev = pos->prev;
92
7
    node->next = pos;
93
7
    node->prev->next = node;
94
7
    node->next->prev = node;
95
7
}
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.34k
{
89
2.34k
    assert(!h2o_linklist_is_linked(node));
90
91
2.34k
    node->prev = pos->prev;
92
2.34k
    node->next = pos;
93
2.34k
    node->prev->next = node;
94
2.34k
    node->next->prev = node;
95
2.34k
}
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
959k
{
99
959k
    if (h2o_linklist_is_empty(list))
100
935k
        return;
101
24.7k
    list->next->prev = pos->prev;
102
24.7k
    list->prev->next = pos;
103
24.7k
    pos->prev->next = list->next;
104
24.7k
    pos->prev = list->prev;
105
24.7k
    h2o_linklist_init_anchor(list);
106
24.7k
}
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
955k
{
99
955k
    if (h2o_linklist_is_empty(list))
100
935k
        return;
101
20.0k
    list->next->prev = pos->prev;
102
20.0k
    list->prev->next = pos;
103
20.0k
    pos->prev->next = list->next;
104
20.0k
    pos->prev = list->prev;
105
20.0k
    h2o_linklist_init_anchor(list);
106
20.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.73k
{
99
4.73k
    if (h2o_linklist_is_empty(list))
100
0
        return;
101
4.73k
    list->next->prev = pos->prev;
102
4.73k
    list->prev->next = pos;
103
4.73k
    pos->prev->next = list->next;
104
4.73k
    pos->prev = list->prev;
105
4.73k
    h2o_linklist_init_anchor(list);
106
4.73k
}
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
450k
{
110
450k
    node->next->prev = node->prev;
111
450k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
450k
}
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
20.0k
{
110
20.0k
    node->next->prev = node->prev;
111
20.0k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
20.0k
}
Unexecuted instantiation: socketpool.c:h2o_linklist_unlink
timerwheel.c:h2o_linklist_unlink
Line
Count
Source
109
61
{
110
61
    node->next->prev = node->prev;
111
61
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
61
}
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
52.2k
{
110
52.2k
    node->next->prev = node->prev;
111
52.2k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
52.2k
}
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.64k
{
110
2.64k
    node->next->prev = node->prev;
111
2.64k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
2.64k
}
http1.c:h2o_linklist_unlink
Line
Count
Source
109
60.5k
{
110
60.5k
    node->next->prev = node->prev;
111
60.5k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
60.5k
}
connection.c:h2o_linklist_unlink
Line
Count
Source
109
116k
{
110
116k
    node->next->prev = node->prev;
111
116k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
116k
}
scheduler.c:h2o_linklist_unlink
Line
Count
Source
109
180k
{
110
180k
    node->next->prev = node->prev;
111
180k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
180k
}
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
93
{
110
93
    node->next->prev = node->prev;
111
93
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
93
}
server.c:h2o_linklist_unlink
Line
Count
Source
109
2.34k
{
110
2.34k
    node->next->prev = node->prev;
111
2.34k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
2.34k
}
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.74k
{
110
3.74k
    node->next->prev = node->prev;
111
3.74k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
3.74k
}
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.0k
{
110
12.0k
    node->next->prev = node->prev;
111
12.0k
    node->prev->next = node->next;
112
    node->next = node->prev = NULL;
113
12.0k
}
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