X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Flist%2Flist.h;fp=ccan%2Flist%2Flist.h;h=a4c21f189739a2b498b7487c70e454e4024c131e;hp=0800a0fa144f20f1ab0985b5b3dd369fe9f39eef;hb=82cdf817001422b742abbefa30fd540bb2a49ec4;hpb=7e1fa675736a638c0ea1b8246d6844bd329a1174 diff --git a/ccan/list/list.h b/ccan/list/list.h index 0800a0fa..a4c21f18 100644 --- a/ccan/list/list.h +++ b/ccan/list/list.h @@ -291,6 +291,21 @@ static inline bool list_empty_nodebug(const struct list_head *h) } #endif +/** + * list_empty_nocheck - is a list empty? + * @h: the list_head + * + * If the list is empty, returns true. This doesn't perform any + * debug check for list consistency, so it can be called without + * locks, racing with the list being modified. This is ok for + * checks where an incorrect result is not an issue (optimized + * bail out path for example). + */ +static inline bool list_empty_nocheck(const struct list_head *h) +{ + return h->n.next == &h->n; +} + /** * list_del - delete an entry from an (unknown) linked list. * @n: the list_node to delete from the list.