ck_queue(3) | Library Functions Manual | ck_queue(3) |
CK_LIST_EMPTY
,
CK_LIST_ENTRY
,
CK_LIST_FIRST
,
CK_LIST_FOREACH
,
CK_LIST_FOREACH_SAFE
,
CK_LIST_HEAD
,
CK_LIST_HEAD_INITIALIZER
,
CK_LIST_INIT
,
CK_LIST_INSERT_AFTER
,
CK_LIST_INSERT_BEFORE
,
CK_LIST_INSERT_HEAD
,
CK_LIST_MOVE
, CK_LIST_NEXT
,
CK_LIST_REMOVE
,
CK_LIST_SWAP
,
CK_SLIST_EMPTY
,
CK_SLIST_ENTRY
,
CK_SLIST_FIRST
,
CK_SLIST_FOREACH
,
CK_SLIST_FOREACH_PREVPTR
,
CK_SLIST_FOREACH_SAFE
,
CK_SLIST_HEAD
,
CK_SLIST_HEAD_INITIALIZER
,
CK_SLIST_INIT
,
CK_SLIST_INSERT_AFTER
,
CK_SLIST_INSERT_HEAD
,
CK_SLIST_MOVE
,
CK_SLIST_NEXT
,
CK_SLIST_REMOVE
,
CK_SLIST_REMOVE_AFTER
,
CK_SLIST_REMOVE_HEAD
,
CK_SLIST_SWAP
,
CK_STAILQ_CONCAT
,
CK_STAILQ_EMPTY
,
CK_STAILQ_ENTRY
,
CK_STAILQ_FIRST
,
CK_STAILQ_FOREACH
,
CK_STAILQ_FOREACH_SAFE
,
CK_STAILQ_HEAD
,
CK_STAILQ_HEAD_INITIALIZER
,
CK_STAILQ_INIT
,
CK_STAILQ_INSERT_AFTER
,
CK_STAILQ_INSERT_HEAD
,
CK_STAILQ_INSERT_TAIL
,
CK_STAILQ_MOVE
,
CK_STAILQ_NEXT
,
CK_STAILQ_REMOVE
,
CK_STAILQ_REMOVE_AFTER
,
CK_STAILQ_REMOVE_HEAD
,
CK_STAILQ_SWAP
—
multi-reader single-writer singly-linked lists,
singly-linked tail queues and lists
Concurrency Kit (libck, -lck)
#include
<ck_queue.h>
CK_LIST_EMPTY
();
CK_LIST_ENTRY
();
CK_LIST_FIRST
();
CK_LIST_FOREACH
();
CK_LIST_FOREACH_SAFE
();
CK_LIST_HEAD
();
CK_LIST_HEAD_INITIALIZER
();
CK_LIST_INIT
();
CK_LIST_INSERT_AFTER
();
CK_LIST_INSERT_BEFORE
();
CK_LIST_INSERT_HEAD
();
CK_LIST_MOVE
();
CK_LIST_NEXT
();
CK_LIST_REMOVE
();
CK_LIST_SWAP
();
CK_SLIST_EMPTY
();
CK_SLIST_ENTRY
();
CK_SLIST_FIRST
();
CK_SLIST_FOREACH
();
CK_SLIST_FOREACH_PREVPTR
();
CK_SLIST_FOREACH_SAFE
();
CK_SLIST_HEAD
();
CK_SLIST_HEAD_INITIALIZER
();
CK_SLIST_INIT
();
CK_SLIST_INSERT_AFTER
();
CK_SLIST_INSERT_HEAD
();
CK_SLIST_MOVE
();
CK_SLIST_NEXT
();
CK_SLIST_REMOVE
();
CK_SLIST_REMOVE_AFTER
();
CK_SLIST_REMOVE_HEAD
();
CK_SLIST_SWAP
();
CK_STAILQ_CONCAT
();
CK_STAILQ_EMPTY
();
CK_STAILQ_ENTRY
();
CK_STAILQ_FIRST
();
CK_STAILQ_FOREACH
();
CK_STAILQ_FOREACH_SAFE
();
CK_STAILQ_HEAD
();
CK_STAILQ_HEAD_INITIALIZER
();
CK_STAILQ_INIT
();
CK_STAILQ_INSERT_AFTER
();
CK_STAILQ_INSERT_HEAD
();
CK_STAILQ_INSERT_TAIL
();
CK_STAILQ_MOVE
();
CK_STAILQ_NEXT
();
CK_STAILQ_REMOVE
();
CK_STAILQ_REMOVE_AFTER
();
CK_STAILQ_REMOVE_HEAD
();
CK_STAILQ_SWAP
();
See your system's manual page for queue for additional information. ck_queue is a queue.h-compatible implementation of many-reader-single-writer queues. It allows for safe concurrent iteration, peeking and read-side access in the presence of a single concurrent writer without any usage of locks. In many cases, adoption of ck_queue will simply require prefixing all queue operations with CK_.
Additional information available at http://concurrencykit.org/
July 28, 2013. |