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

Reply via email to