changeset 48:b8bb94b990c4 dev_expl_VP_and_DKU tip

fix: 0 dependency tasks were never started
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Tue, 09 Jul 2013 11:50:09 +0200
parents a7c77d69d127
children
files VSs_PluginFns.c VSs_Request_Handlers.c
diffstat 2 files changed, 12 insertions(+), 11 deletions(-) [+]
line diff
     1.1 --- a/VSs_PluginFns.c	Fri Jul 05 15:36:42 2013 +0200
     1.2 +++ b/VSs_PluginFns.c	Tue Jul 09 11:50:09 2013 +0200
     1.3 @@ -176,9 +176,6 @@
     1.4  
     1.5  ReturnTheSlv: //Nina, doing gotos to here should help with holistic..
     1.6  
     1.7 -if(returnSlv){
     1.8 -DEBUG__printf_w_task(dbgRqstHdlr,((VSsSemData*)returnSlv->semanticData)->taskStub,"scheduled"); 
     1.9 -}
    1.10  #ifdef IDLE_SLAVES
    1.11      if (!returnSlv) {
    1.12          returnSlv = semEnv->idlePr[coreNum][slotNum];
     2.1 --- a/VSs_Request_Handlers.c	Fri Jul 05 15:36:42 2013 +0200
     2.2 +++ b/VSs_Request_Handlers.c	Tue Jul 09 11:50:09 2013 +0200
     2.3 @@ -261,10 +261,10 @@
     2.4               * the hash-entry's count of enabled and non-finished readers.*/
     2.5                  taskStub->numBlockingProp -= 1;
     2.6                  DEBUG__printf_w_task(dbgSS, taskStub, "taking ptrEntry %p (read)", ptrEntry);
     2.7 -                if (taskStub->numBlockingProp == 0) {
     2.8 -                    writePrivQ(taskStub, semEnv->taskReadyQ);
     2.9 -                    DEBUG__printf_w_task(dbgSS, taskStub, "ready (dependencies fulfilled)");
    2.10 -                }
    2.11 +//                if (taskStub->numBlockingProp == 0) {
    2.12 +//                    writePrivQ(taskStub, semEnv->taskReadyQ);
    2.13 +//                    DEBUG__printf_w_task(dbgSS, taskStub, "ready (dependencies fulfilled)");
    2.14 +//                }
    2.15                  ptrEntry->numEnabledNonDoneReaders += 1;
    2.16              } else { /*Otherwise, the reader is put into the hash-entry's Q of
    2.17               * waiters*/
    2.18 @@ -283,10 +283,10 @@
    2.19                * into the readyQ.*/
    2.20                  taskStub->numBlockingProp -= 1;
    2.21                  DEBUG__printf_w_task(dbgSS,taskStub,"taking ptrEntry %p (write)",ptrEntry);
    2.22 -                if (taskStub->numBlockingProp == 0) {
    2.23 -                    DEBUG__printf_w_task(dbgSS, taskStub, "ready (dependencies fulfilled)");
    2.24 -                    writePrivQ(taskStub, semEnv->taskReadyQ);
    2.25 -                }
    2.26 +//                if (taskStub->numBlockingProp == 0) {
    2.27 +//                    DEBUG__printf_w_task(dbgSS, taskStub, "ready (dependencies fulfilled)");
    2.28 +//                    writePrivQ(taskStub, semEnv->taskReadyQ);
    2.29 +//                }
    2.30                  ptrEntry->hasEnabledNonFinishedWriter = TRUE;
    2.31              } else {/*Otherwise, put the writer into the entry's Q of waiters.*/
    2.32                  DEBUG__printf_w_task(dbgSS,taskStub,"getting in line for ptrEntry %p (write)",ptrEntry);
    2.33 @@ -295,6 +295,10 @@
    2.34              }
    2.35          }
    2.36      } //for argNum
    2.37 +    if(taskStub->numBlockingProp == 0){
    2.38 +        DEBUG__printf_w_task(dbgSS, taskStub, "ready (dependencies fulfilled)");
    2.39 +        writePrivQ(taskStub, semEnv->taskReadyQ);
    2.40 +    }
    2.41  #endif
    2.42  
    2.43      resume_slaveVP(semReq->callingSlv, semEnv);