comparison PR.h @ 266:a5fa1e087c7e

Save checkpoint to come back to -- about to mangle AnimationMaster.c
author Sean Halle <seanhalle@yahoo.com>
date Thu, 25 Oct 2012 23:35:36 -0700
parents dafae55597ce
children 608833ae2c5d
comparison
equal deleted inserted replaced
1:a716ed044c8d 2:bcc07311f71e
129 SlotPerfInfo *perfInfo; //used by assigner to pick best slave for core 129 SlotPerfInfo *perfInfo; //used by assigner to pick best slave for core
130 }; 130 };
131 //AnimSlot 131 //AnimSlot
132 132
133 enum VPtype 133 enum VPtype
134 { TaskSlotSlv = 1,//Slave tied to an anim slot, only animates tasks 134 { SlotTaskSlv = 1,//Slave tied to an anim slot, only animates tasks
135 TaskFreeSlv, //When a suspended task ends, the slave becomes this 135 FreeTaskSlv, //When a suspended task ends, the slave becomes this
136 GenericSlv, //the VP is explicitly seen in the app code, or task suspends 136 GenericSlv, //the VP is explicitly seen in the app code, or task suspends
137 Master, 137 Master,
138 Shutdown, 138 Shutdown,
139 Idle 139 Idle
140 }; 140 };
290 }; 290 };
291 291
292 struct _PRMetaTask 292 struct _PRMetaTask
293 { 293 {
294 PRTaskType taskType; 294 PRTaskType taskType;
295 RequestHandler reqHandler; //Lang-specific hdlr for create, end, etc 295 // RequestHandler reqHandler; //Lang-specific hdlr for create, end, etc
296 int32 *taskID; //is standard PR ID 296 int32 *taskID; //is standard PR ID
297 SlaveVP *slaveAssignedTo; //no valid until task animated 297 SlaveVP *slaveAssignedTo; //no valid until task animated
298 TopLevelFn topLevelFn; //This is the Fn executes as the task 298 TopLevelFn topLevelFn; //This is the Fn executes as the task
299 void *initData; //The data taken by the function 299 void *initData; //The data taken by the function
300 void *langMetaTask; 300 void *langMetaTask;
335 { 335 {
336 PRSemEnv semEnvs[NUM_SEM_ENVS_IN_PROCESS]; //used as a hash table 336 PRSemEnv semEnvs[NUM_SEM_ENVS_IN_PROCESS]; //used as a hash table
337 PRSemEnv semEnvList[NUM_SEM_ENVS_IN_PROCESS]; //lines up the semEnvs, so can iterate through 337 PRSemEnv semEnvList[NUM_SEM_ENVS_IN_PROCESS]; //lines up the semEnvs, so can iterate through
338 int32 numSemEnvs; //must be less than num sem envs.. used to iterate through 338 int32 numSemEnvs; //must be less than num sem envs.. used to iterate through
339 339
340 int32 numLiveGenericSlaves; 340 int32 numLiveGenericSlvs;
341 int32 numLiveFreeTaskSlaves; 341 int32 numLiveFreeTaskSlvs;
342 int32 numLiveTasks; 342 int32 numLiveTasks;
343 bool32 coreIsDone[NUM_CORES][CACHE_LINE_SZ]; //Fixes false sharing 343 // bool32 coreIsDone[NUM_CORES][CACHE_LINE_SZ]; //Fixes false sharing
344 344
345 PrivQ *freeTaskSlvRecycleQ;
346 SlaveVP slotTaskSlvs[NUM_CORES][NUM_ANIM_SLOTS];
345 void *resultToReturn; 347 void *resultToReturn;
346 348
347 SlaveVP *seedSlv; 349 SlaveVP *seedSlv;
348 350
349 //These are used to coord with OS thread waiting for process to end 351 //These are used to coord with OS thread waiting for process to end