uniq_skiplist.h: add function uniq_skiplist_iterator_at

pull/40/head
YuQing 2021-06-30 15:05:31 +08:00
parent 3ad4a89ff5
commit de879c15ee
2 changed files with 16 additions and 1 deletions

View File

@ -1,6 +1,7 @@
Version 1.53 2021-06-26 Version 1.53 2021-06-30
* process_action support action status * process_action support action status
* uniq_skiplist.h: add function uniq_skiplist_iterator_at
Version 1.52 2021-06-08 Version 1.52 2021-06-08
* process_stop more gracefully (kill -9 on timeout) * process_stop more gracefully (kill -9 on timeout)

View File

@ -192,6 +192,20 @@ static inline void *uniq_skiplist_next(UniqSkiplistIterator *iterator)
return data; return data;
} }
static inline void uniq_skiplist_iterator_at(UniqSkiplist *sl,
const int offset, UniqSkiplistIterator *iterator)
{
int i;
iterator->current = sl->top->links[0];
iterator->tail = sl->factory->tail;
i = 0;
while (i++ < offset && iterator->current != iterator->tail) {
iterator->current = iterator->current->links[0];
}
}
static inline int uniq_skiplist_iterator_count(UniqSkiplistIterator *iterator) static inline int uniq_skiplist_iterator_count(UniqSkiplistIterator *iterator)
{ {
volatile UniqSkiplistNode *current; volatile UniqSkiplistNode *current;