Mercurial > hg > Gears > Gears
view src/parallel_execution/DebugWorker/TaskIterator.c @ 1015:e6778c866876
add DebugWorker and DebugTaskManager
author | Takato Matsuoka <t.matsuoka@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 18 Jan 2022 19:54:28 +0900 |
parents | |
children | 793b21a8ea12 |
line wrap: on
line source
#include <stdio.h> #include "../context.h" #include "TaskIterator.h" #include "state_db.h" TaskIterator* createQueueIterator(Element* elements, StateDB s, TaskIterator* prev) { TaskIterator* new = (TaskIterator*)calloc(1, sizeof(TaskIterator)); if (!new) exit(1); new->prev = prev; new->state = s; // new->list = elements; return new; } Element* takeNextIterator(TaskIterator* iterator) { struct Element* elem = iterator->list; if (!elem) { return NULL; } struct Element* next = elem->next; if (next == NULL) { return NULL; } iterator->list = next; return next; } int iteratorLength(TaskIterator* iterator) { int i = 0; struct Element* elem = iterator->list; for(; elem; elem = elem->next) i++; return i; } void freeIterator(TaskIterator* iterator) { free(iterator); }