Mercurial > hg > Gears > Gears
changeset 902:58037271d763
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 27 Jan 2021 16:52:11 +0900 |
parents | e4f918ebd927 |
children | c9bd13e2ac59 |
files | src/parallel_execution/ModelChecking/MCWorker.cbc src/parallel_execution/SingleLinkedQueue.cbc src/parallel_execution/examples/DPPMC/PhilsImpl.cbc |
diffstat | 3 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/ModelChecking/MCWorker.cbc Wed Jan 27 16:31:41 2021 +0900 +++ b/src/parallel_execution/ModelChecking/MCWorker.cbc Wed Jan 27 16:52:11 2021 +0900 @@ -82,7 +82,7 @@ } printf("mc worker take\n"); task->worker = worker; - enum Code taskCg = task->next; + //enum Code taskCg = task->next; struct Queue* mcQueue = mcWorker->mcQueue; goto mcQueue->put(task, taskReceiveMCWorker); }
--- a/src/parallel_execution/SingleLinkedQueue.cbc Wed Jan 27 16:31:41 2021 +0900 +++ b/src/parallel_execution/SingleLinkedQueue.cbc Wed Jan 27 16:52:11 2021 +0900 @@ -96,25 +96,24 @@ typedef struct task_iterator { - struct task_iterator *prev; + Element* prev; StateDB state; Element* list; Element* last; } TaskIterator, *TaskIteratorPtr; -Element* createQueueIterator(struct SingleLinkedQueue* queue) { - TaskIteratorPtr new = (TaskIteratorPtr)malloc(sizeof(TaskIterator)); +TaskIteratorPtr createQueueIterator(struct SingleLinkedQueue* queue, struct Element* prev) { + TaskIteratorPtr new = (TaskIteratorPtr)calloc(1, sizeof(TaskIterator)); if (!new) exit(1); - - new->prev = queue->top; + new->prev = prev; new->state = NULL; new->list = queue->top; new->last = queue->last; return new; } -Element* takeNextIterator(struct SingleLinkedQueue* queue, TaskIteratorPtr iterator) { +TaskIteratorPtr takeNextIterator(struct SingleLinkedQueue* queue, TaskIteratorPtr iterator) { struct Element* elem = iterator->list; if (!elem) { return NULL; @@ -122,13 +121,14 @@ struct Element* next = elem->next; if (next == NULL) { - return next; + return NULL; } if (next == iterator->last) { return NULL; } + iterator->prev = elem; iterator->list = next; - return next; + return iterator; }
--- a/src/parallel_execution/examples/DPPMC/PhilsImpl.cbc Wed Jan 27 16:31:41 2021 +0900 +++ b/src/parallel_execution/examples/DPPMC/PhilsImpl.cbc Wed Jan 27 16:52:11 2021 +0900 @@ -37,7 +37,7 @@ struct AtomicT_intImpl_int* right = (struct AtomicT_intImpl_int*)phils->Rightfork->atomicT_int; struct AtomicT_intImpl_int* left = (struct AtomicT_intImpl_int*)phils->Leftfork->atomicT_int; add_memory(&right->atomic, sizeof(int), &context->mem); - add_memory(&left->atomic, sizeof(int), &context->mem); + return add_memory(&left->atomic, sizeof(int), &context->mem); }