1ck_queue(3)              BSD Library Functions Manual              ck_queue(3)
2

NAME

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

LIBRARY

23     Concurrency Kit (libck, -lck)
24

SYNOPSIS

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

DESCRIPTION

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

SEE ALSO

137     queue
138
139     Additional information available at http://concurrencykit.org/
140
141                                July 28, 2013.
Impressum