Coverage Report

Created: 2026-02-09 06:30

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