diff PR.h @ 267:608833ae2c5d

Checkpoint -- about to clean up AnimationMaster, deleting a bunch of stuff
author Sean Halle <seanhalle@yahoo.com>
date Sun, 04 Nov 2012 18:39:28 -0800
parents a5fa1e087c7e
children e5bd470b562b
line diff
     1.1 --- a/PR.h	Thu Oct 25 23:35:36 2012 -0700
     1.2 +++ b/PR.h	Sun Nov 04 18:39:28 2012 -0800
     1.3 @@ -78,7 +78,6 @@
     1.4     void              *semReq;
     1.5     PRProcess         *processReqIsIn;
     1.6     int32              langMagicNumber;
     1.7 -   PRMetaTask        *metaTask;
     1.8     TopLevelFn         topLevelFn;
     1.9     void              *initData;
    1.10     int32             *ID;
    1.11 @@ -121,7 +120,7 @@
    1.12  struct _AnimSlot
    1.13   {
    1.14     int           workIsDone;
    1.15 -   int           needsSlaveAssigned;
    1.16 +   int           needsWorkAssigned;
    1.17     SlaveVP      *slaveAssignedToSlot;
    1.18     
    1.19     int           slotIdx;  //needed by Holistic Model's data gathering
    1.20 @@ -171,7 +170,7 @@
    1.21     void       *semanticData;  //Lang saves lang-specific things in slave here
    1.22  
    1.23        //Task related stuff
    1.24 -   bool        needsTaskAssigned;
    1.25 +//   bool        needsTaskAssigned;
    1.26     
    1.27          //=========== MEASUREMENT STUFF ==========
    1.28           MEAS__Insert_Meas_Fields_into_Slave;
    1.29 @@ -285,8 +284,8 @@
    1.30  
    1.31  enum PRTaskType
    1.32   { GenericSlave = 1,
    1.33 -   AtomicTask,
    1.34 -   SuspendedTask
    1.35 +   SlotTask,
    1.36 +   FreeTask
    1.37   };
    1.38  
    1.39  struct _PRMetaTask
    1.40 @@ -318,6 +317,13 @@
    1.41     void (*freeFn)(void *);
    1.42   }
    1.43  PRSemDataTemplate;
    1.44 + 
    1.45 +typedef struct
    1.46 + {
    1.47 +   void (*recycler)(void *);
    1.48 +   void *langSemData;
    1.49 + }
    1.50 +PRSemData;
    1.51  
    1.52  typedef struct
    1.53   { PRSemDataTemplate **semDatas;
    1.54 @@ -342,12 +348,14 @@
    1.55     int32           numLiveTasks;
    1.56  //   bool32          coreIsDone[NUM_CORES][CACHE_LINE_SZ]; //Fixes false sharing
    1.57  
    1.58 -   PrivQ          *freeTaskSlvRecycleQ;
    1.59 +   PrivQueueStruc *freeTaskSlvRecycleQ;
    1.60     SlaveVP         slotTaskSlvs[NUM_CORES][NUM_ANIM_SLOTS];
    1.61     void           *resultToReturn;
    1.62    
    1.63     SlaveVP        *seedSlv;   
    1.64     
    1.65 +   SlaveAssigner   overrideAssigner;
    1.66 +   
    1.67        //These are used to coord with OS thread waiting for process to end
    1.68     bool32          executionIsComplete;
    1.69     pthread_mutex_t doneLock;