Vitaly Wool <vitalyw...@gmail.com> writes: > 2017-12-20 1:57 GMT+01:00 Huang, Ying <ying.hu...@intel.com>: > > <snip> > >> >> > Could you please elaborate how this would be implemented "on top"? >> >> struct llist_node *my_del_first_exclusive(struct llist_head *head) >> { >> struct llist_node *node = llist_del_first(head); >> >> if (node) >> node->next = LLIST_NODE_UNLISTED; >> } >> >> bool my_add_exclusive(struct llist_node *node, struct llist_head *head) >> { >> if (node->next != LLIST_NODE_UNLIST) >> return false; >> if (cmpxchg(&node->next, LLIST_NODE_UNLIST, NULL) != >> LLIST_NODE_UNLIST) >> return false; >> llist_add(node, head); >> return true; >> } >> > > That would work, thanks. I'll update the patch.
Is there any other users except your code? If no, I think it's better to keep it with its only user instead part of llist library at least for now. Because I don't know whether the usage model is popular. Best Regards, Huang, Ying > Thanks, > Vitaly