Mercurial > hg > Gears > GearsAgda
comparison src/parallel_execution/context.h @ 184:21840c7fb309
merge
author | mir3636 |
---|---|
date | Thu, 15 Dec 2016 17:41:00 +0900 |
parents | dec50dd624c7 |
children | 247a2c4a8908 |
comparison
equal
deleted
inserted
replaced
183:dec50dd624c7 | 184:21840c7fb309 |
---|---|
109 C_clearSynchronizedQueue, | 109 C_clearSynchronizedQueue, |
110 C_putRedBlackTree, | 110 C_putRedBlackTree, |
111 C_getRedBlackTree, | 111 C_getRedBlackTree, |
112 C_removeRedBlackTree, | 112 C_removeRedBlackTree, |
113 C_clearRedBlackTree, | 113 C_clearRedBlackTree, |
114 C_QueueTest1, | |
115 C_QueueTest2, | |
116 C_QueueTest3, | |
117 C_QueueTest4, | |
118 SpawnTask, | 114 SpawnTask, |
119 Twice, | 115 Twice, |
120 StartTime, | 116 StartTime, |
121 EndTime, | 117 EndTime, |
122 Exit, | 118 Exit, |
133 D_Allocate, | 129 D_Allocate, |
134 D_SingleLinkedStack, | 130 D_SingleLinkedStack, |
135 D_Stack, | 131 D_Stack, |
136 D_RedBlackTree, | 132 D_RedBlackTree, |
137 D_Tree, | 133 D_Tree, |
138 D_TaskManager, | |
139 D_TaskManagerImpl, | |
140 D_Task, | 134 D_Task, |
141 D_Traverse, | 135 D_Traverse, |
142 D_RotateTree, | 136 D_RotateTree, |
143 D_Node, | 137 D_Node, |
144 D_LoopCounter, | 138 D_LoopCounter, |
179 } loopCounter; | 173 } loopCounter; |
180 struct TaskManager { | 174 struct TaskManager { |
181 int numWorker; | 175 int numWorker; |
182 enum Code spawn; | 176 enum Code spawn; |
183 enum Code shutdown; | 177 enum Code shutdown; |
178 enum Code deadLockDetected; | |
179 enum Code next; | |
184 struct Worker* workers; | 180 struct Worker* workers; |
185 } taskManager; | 181 } TaskManager; |
186 struct TaskManagerImpl { | 182 struct TaskManagerImpl { |
187 struct Queue *activeQueue; | 183 struct Queue* activeQueue; |
188 struct Queue *waitQueue; | 184 struct Queue* taskQueue; |
189 } taskManagerImpl; | 185 } TaskManagerImpl; |
190 struct Worker { | 186 struct Worker { |
191 int id; | 187 int id; |
192 struct Context* contexts; | 188 struct Context* contexts; |
193 enum Code execute; | 189 enum Code execute; |
194 enum Code taskSend; | 190 enum Code taskSend; |
195 enum Code taskRecive; | 191 enum Code taskRecive; |
196 enum Code shutdown; | 192 enum Code shutdown; |
197 struct Queue* tasks; | 193 struct Queue* tasks; |
198 } worker; | 194 } Worker; |
199 #ifdef USE_CUDA | 195 #ifdef USE_CUDA |
200 struct CudaTask { | 196 struct CudaTask { |
201 CUdevice device; | 197 CUdevice device; |
202 CUcontext cuCtx; | 198 CUcontext cuCtx; |
203 CUfunction code; | 199 CUfunction code; |
207 #endif | 203 #endif |
208 struct Main { | 204 struct Main { |
209 enum Code code; | 205 enum Code code; |
210 enum Code next; | 206 enum Code next; |
211 struct Queue* args; | 207 struct Queue* args; |
212 } main; | 208 } |
213 struct Task { | 209 struct Task { |
214 enum Code code; | 210 enum Code code; |
215 struct Queue* dataGears; | 211 struct Queue* dataGears; |
216 int idsCount; | 212 int idsCount; |
217 } Task; | 213 } Task; |
223 enum Code clear; | 219 enum Code clear; |
224 enum Code put; | 220 enum Code put; |
225 enum Code take; | 221 enum Code take; |
226 enum Code isEmpty; | 222 enum Code isEmpty; |
227 enum Code next; | 223 enum Code next; |
228 } queue; | 224 } Queue; |
229 struct SingleLinkedQueue { | 225 struct SingleLinkedQueue { |
230 struct Element* top; | 226 struct Element* top; |
231 struct Element* last; | 227 struct Element* last; |
232 } singleLinkedQueue; | 228 } SingleLinkedQueue; |
233 // Stack Interface | 229 // Stack Interface |
234 struct Stack { | 230 struct Stack { |
235 union Data* stack; | 231 union Data* stack; |
236 union Data* data; | 232 union Data* data; |
237 union Data* data1; | 233 union Data* data1; |