tech-userlevel archive    >This functionally works, but the
TAILQ data structure is not the same as >the CIRCLEQ data
structure (i.e. no ABI compatibility, if that matters; >I'm not
quite sure why it does) and unnecessarily penalizes applications
>which need to traverse the list in the tail->head direction.  I
know the data structures aren't the same, but if you're using
the macros you don't ever notice this.    As for the penalty ...
you're talking  #define CIRCLEQ_PREV(elm,field)
((elm)->field.cqe_prev)   #define TAILQ_PREV(elm, headname,
field)                                \  One extra pointer
dereference is what we're talking about; I have to believe that
for 99% of applications it wouldn't matter.  Also, I see that
CIRCLEQ has more complicated logic if you want to insert
elements at the end of it.  So obviously there are tradeoffs
(but again, I don't really think it matters to nearly
everybody).    Home | Main Index | Thread Index | Old Index