Mercurial > hg > Members > innparusu > Gears
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; |