- printf("\n");
- fflush(stdout);
- }
- node_t *item = sl->head;
- int i = 0;
- while (item) {
- int is_marked = HAS_MARK(item->next[0]);
- printf("%s%p:0x%llx ", is_marked ? "*" : "", item, (uint64_t)item->key);
- if (item != sl->head) {
- printf("[%d]", item->num_levels);
- } else {
- printf("[HEAD]");
- }
- for (int level = 1; level < item->num_levels; ++level) {
- node_t *next = STRIP_MARK(item->next[level]);
- is_marked = HAS_MARK(item->next[0]);
- printf(" %p%s", next, is_marked ? "*" : "");
- if (item == sl->head && item->next[level] == DOES_NOT_EXIST)
- break;
- }
- printf("\n");
- fflush(stdout);
- item = STRIP_MARK(item->next[0]);
- if (i++ > 30) {
- printf("...\n");
- break;
- }