Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
diff AnimationMaster.c @ 278:2fc69e6c14ea
Dev_ML -- works in both sequential and concurrent modes
| author | Sean Halle <seanhalle@yahoo.com> |
|---|---|
| date | Fri, 08 Mar 2013 05:34:21 -0800 |
| parents | 1d7ea1b0f176 |
| children | 72ffdb11ad8e 15ee3fe10e3d |
line diff
1.1 --- a/AnimationMaster.c Mon Mar 04 00:40:38 2013 -0800 1.2 +++ b/AnimationMaster.c Fri Mar 08 05:34:21 2013 -0800 1.3 @@ -74,9 +74,11 @@ 1.4 if( slot->workIsDone ) 1.5 { slot->workIsDone = FALSE; 1.6 slot->needsWorkAssigned = TRUE; 1.7 +printf("top handle request: %d | reqType: %d\n", slot->coreSlotIsOn, (int32)req->reqType );fflush(stdin); 1.8 1.9 //An Idle VP has no request to handle, so skip to assign.. 1.10 - if( slot->slaveAssignedToSlot->typeOfVP != IdleVP ) 1.11 + if( slot->slaveAssignedToSlot->typeOfVP != IdleVP && 1.12 + slot->slaveAssignedToSlot->typeOfVP != ShutdownVP) 1.13 { 1.14 HOLISTIC__Record_AppResponder_start; //TODO: update to check which process for each slot 1.15 MEAS__startReqHdlr; 1.16 @@ -93,7 +95,8 @@ 1.17 1.18 //Handle task create and end first -- they're special cases.. 1.19 switch( req->reqType ) 1.20 - { case TaskEnd: 1.21 + { 1.22 + case TaskEnd: 1.23 { //do PR handler, which calls lang's hdlr and does recycle of 1.24 // free task slave if needed -- PR handler checks for free task Slv 1.25 PRHandle__EndTask( req, slave ); break; 1.26 @@ -121,6 +124,11 @@ 1.27 MEAS__endReqHdlr; 1.28 HOLISTIC__Record_AppResponder_end; 1.29 }//if not idleVP 1.30 + else if( slot->slaveAssignedToSlot->typeOfVP == ShutdownVP ) 1.31 + { //ShutdownVP used, essentially, as a flag, to cause terminate here 1.32 + PR_int__release_master_lock(); 1.33 + terminateCoreCtlr( slot->slaveAssignedToSlot ); 1.34 + } 1.35 } //if have request to be handled 1.36 1.37 //NOTE: IF statement is leftover from when master managed many slots
