1ck_queue(3) BSD Library Functions Manual ck_queue(3)
2
4 CK_LIST_EMPTY, CK_LIST_ENTRY, CK_LIST_FIRST, CK_LIST_FOREACH,
5 CK_LIST_FOREACH_SAFE, CK_LIST_HEAD, CK_LIST_HEAD_INITIALIZER,
6 CK_LIST_INIT, CK_LIST_INSERT_AFTER, CK_LIST_INSERT_BEFORE,
7 CK_LIST_INSERT_HEAD, CK_LIST_MOVE, CK_LIST_NEXT, CK_LIST_REMOVE,
8 CK_LIST_SWAP, CK_SLIST_EMPTY, CK_SLIST_ENTRY, CK_SLIST_FIRST,
9 CK_SLIST_FOREACH, CK_SLIST_FOREACH_PREVPTR, CK_SLIST_FOREACH_SAFE,
10 CK_SLIST_HEAD, CK_SLIST_HEAD_INITIALIZER, CK_SLIST_INIT,
11 CK_SLIST_INSERT_AFTER, CK_SLIST_INSERT_HEAD, CK_SLIST_MOVE,
12 CK_SLIST_NEXT, CK_SLIST_REMOVE, CK_SLIST_REMOVE_AFTER,
13 CK_SLIST_REMOVE_HEAD, CK_SLIST_SWAP, CK_STAILQ_CONCAT, CK_STAILQ_EMPTY,
14 CK_STAILQ_ENTRY, CK_STAILQ_FIRST, CK_STAILQ_FOREACH,
15 CK_STAILQ_FOREACH_SAFE, CK_STAILQ_HEAD, CK_STAILQ_HEAD_INITIALIZER,
16 CK_STAILQ_INIT, CK_STAILQ_INSERT_AFTER, CK_STAILQ_INSERT_HEAD,
17 CK_STAILQ_INSERT_TAIL, CK_STAILQ_MOVE, CK_STAILQ_NEXT, CK_STAILQ_REMOVE,
18 CK_STAILQ_REMOVE_AFTER, CK_STAILQ_REMOVE_HEAD, CK_STAILQ_SWAP — multi-
19 reader single-writer singly-linked lists, singly-linked tail queues and
20 lists
21
23 Concurrency Kit (libck, -lck)
24
26 #include <ck_queue.h>
27
28 CK_LIST_EMPTY();
29
30 CK_LIST_ENTRY();
31
32 CK_LIST_FIRST();
33
34 CK_LIST_FOREACH();
35
36 CK_LIST_FOREACH_SAFE();
37
38 CK_LIST_HEAD();
39
40 CK_LIST_HEAD_INITIALIZER();
41
42 CK_LIST_INIT();
43
44 CK_LIST_INSERT_AFTER();
45
46 CK_LIST_INSERT_BEFORE();
47
48 CK_LIST_INSERT_HEAD();
49
50 CK_LIST_MOVE();
51
52 CK_LIST_NEXT();
53
54 CK_LIST_REMOVE();
55
56 CK_LIST_SWAP();
57
58 CK_SLIST_EMPTY();
59
60 CK_SLIST_ENTRY();
61
62 CK_SLIST_FIRST();
63
64 CK_SLIST_FOREACH();
65
66 CK_SLIST_FOREACH_PREVPTR();
67
68 CK_SLIST_FOREACH_SAFE();
69
70 CK_SLIST_HEAD();
71
72 CK_SLIST_HEAD_INITIALIZER();
73
74 CK_SLIST_INIT();
75
76 CK_SLIST_INSERT_AFTER();
77
78 CK_SLIST_INSERT_HEAD();
79
80 CK_SLIST_MOVE();
81
82 CK_SLIST_NEXT();
83
84 CK_SLIST_REMOVE();
85
86 CK_SLIST_REMOVE_AFTER();
87
88 CK_SLIST_REMOVE_HEAD();
89
90 CK_SLIST_SWAP();
91
92 CK_STAILQ_CONCAT();
93
94 CK_STAILQ_EMPTY();
95
96 CK_STAILQ_ENTRY();
97
98 CK_STAILQ_FIRST();
99
100 CK_STAILQ_FOREACH();
101
102 CK_STAILQ_FOREACH_SAFE();
103
104 CK_STAILQ_HEAD();
105
106 CK_STAILQ_HEAD_INITIALIZER();
107
108 CK_STAILQ_INIT();
109
110 CK_STAILQ_INSERT_AFTER();
111
112 CK_STAILQ_INSERT_HEAD();
113
114 CK_STAILQ_INSERT_TAIL();
115
116 CK_STAILQ_MOVE();
117
118 CK_STAILQ_NEXT();
119
120 CK_STAILQ_REMOVE();
121
122 CK_STAILQ_REMOVE_AFTER();
123
124 CK_STAILQ_REMOVE_HEAD();
125
126 CK_STAILQ_SWAP();
127
129 See your system's manual page for queue for additional information.
130 ck_queue is a queue.h-compatible implementation of many-reader-single-
131 writer queues. It allows for safe concurrent iteration, peeking and read-
132 side access in the presence of a single concurrent writer without any
133 usage of locks. In many cases, adoption of ck_queue will simply require
134 prefixing all queue operations with CK_.
135
137 queue
138
139 Additional information available at http://concurrencykit.org/
140
141 July 28, 2013.