Mercurial > hg > Members > Moririn
comparison src/parallel_execution/context.h @ 288:f1b0cc555b6e
Add odgCommit
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 06 Feb 2017 04:04:25 +0900 |
parents | 6b099d73949c |
children | 8e7926f3e271 |
comparison
equal
deleted
inserted
replaced
287:6b099d73949c | 288:f1b0cc555b6e |
---|---|
43 context->heap += sizeof(struct dseg *)*len; \ | 43 context->heap += sizeof(struct dseg *)*len; \ |
44 meta->type = D_##dseg; \ | 44 meta->type = D_##dseg; \ |
45 meta->size = len; \ | 45 meta->size = len; \ |
46 data; }) | 46 data; }) |
47 | 47 |
48 #define GET_TYPE(dseg) ({ \ | 48 #define GET_META(dseg) ((struct Meta*)(((void*)dseg) - sizeof(struct Meta))) |
49 struct Meta* meta = (struct Meta*)(((void*)dseg) - sizeof(struct Meta));\ | 49 #define GET_TYPE(dseg) (GET_META(dseg)->type) |
50 meta->type; }) | 50 #define GET_WAIT_LIST(dseg) (GET_META(dseg)->wait) |
51 | 51 |
52 #define Gearef(context, t) (&(context)->data[D_##t]->t) | 52 #define Gearef(context, t) (&(context)->data[D_##t]->t) |
53 | 53 |
54 // (struct SingleLinkedStack *)context->data[D_Stack]->Stack.stack->Stack.stack | 54 // (struct SingleLinkedStack *)context->data[D_Stack]->Stack.stack->Stack.stack |
55 | 55 |
75 void* heap; | 75 void* heap; |
76 long heapLimit; | 76 long heapLimit; |
77 int dataNum; | 77 int dataNum; |
78 int idgCount; //number of waiting dataGear | 78 int idgCount; //number of waiting dataGear |
79 int odg; | 79 int odg; |
80 int maxOdg; | |
80 int workerId; | 81 int workerId; |
81 union Data **data; | 82 union Data **data; |
82 }; | 83 }; |
83 | 84 |
84 union Data { | 85 union Data { |
123 union Data* worker; | 124 union Data* worker; |
124 enum Code taskReceive; | 125 enum Code taskReceive; |
125 enum Code shutdown; | 126 enum Code shutdown; |
126 enum Code next; | 127 enum Code next; |
127 struct Queue* tasks; | 128 struct Queue* tasks; |
129 struct TaskManager* taskManager; | |
128 } Worker; | 130 } Worker; |
129 struct CPUWorker { | 131 struct CPUWorker { |
130 pthread_t thread; | 132 pthread_t thread; |
131 pthread_mutex_t mutex; | 133 pthread_mutex_t mutex; |
132 pthread_cond_t cond; | 134 pthread_cond_t cond; |