comparison src/parallel_execution/worker.c @ 121:bb8be1820302

Rename Code Gears
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 26 Jul 2016 13:06:46 +0900
parents 4df53a60e59a
children a086857e1812
comparison
equal deleted inserted replaced
120:4df5bc41561d 121:bb8be1820302
1 #include <libkern/OSAtomic.h> 1 #include <libkern/OSAtomic.h>
2 2
3 #include "context.h" 3 #include "context.h"
4 #include "origin_cs.h" 4 #include "origin_cs.h"
5 5
6 __code getQueue(struct Context* context, struct Queue* queue, struct Element* element) { 6 __code getQueue1(struct Context* context, struct Queue* queue, struct Element* element) {
7 if (queue->first == 0) 7 if (queue->first == 0)
8 return; 8 return;
9 9
10 element = queue->first; 10 element = queue->first;
11 if (__sync_bool_compare_and_swap(&queue->first, first, first->next)) { 11 if (__sync_bool_compare_and_swap(&queue->first, first, first->next)) {
14 } else { 14 } else {
15 goto meta(context, GetQueue); 15 goto meta(context, GetQueue);
16 } 16 }
17 } 17 }
18 18
19 __code getQueue_stub(struct Context* context) { 19 __code getQueue1_stub(struct Context* context) {
20 goto getQueue(context, &context->data[Queue]->queue, &context->data[Element]->element); 20 goto getQueue(context, &context->data[Queue]->queue, &context->data[Element]->element);
21 } 21 }
22 22
23 __code getQueue2(struct Context* context, struct Element* element, struct Node* node) { 23 __code getQueue2(struct Context* context, struct Element* element, struct Node* node) {
24 context->next = GetQueue; 24 context->next = GetQueue;