Something
public text v1 · immutable#define ASTOBJ_CONTAINER_TRAVERSE2(container,iteratorname,continue,eval) \
do { \
typeof((container)->head) iterator##iteratorname; \
typeof((container)->head) next; \
ASTOBJ_CONTAINER_RDLOCK(container); \
next = (container)->head; \
while((continue) && (iterator##iteratorname = next)) { \
next = iterator##iteratorname->next[0]; \
eval; \
} \
ASTOBJ_CONTAINER_UNLOCK(container); \
} while(0)