void MemRequest::setStateAckDone(TimeDelta_t lat) { MemRequest *orig = setStateAckOrig; if(orig==0) return; if (orig->mt == mt_setState) orig->needsDisp |= needsDisp; setStateAckOrig = 0; I(orig->pendingSetStateAck>0); orig->pendingSetStateAck--; if (orig->pendingSetStateAck<=0) { if(orig->mt == mt_req) { orig->redoReqCB.schedule(lat); }else if (orig->mt == mt_reqAck) { orig->redoReqAckCB.schedule(lat); }else if (orig->mt == mt_setState) { //I(orig->setStateAckOrig==0); //orig->ack(); orig->convert2SetStateAck(orig->ma, orig->needsDisp); I(orig->currMemObj == orig->creatorObj); //orig->startSetStateAck(); // NOTE: no PortManager because this message is already accounted orig->redoSetStateAckAbs(globalClock); //orig->setStateAckDone(); No recursive/dep chains for the moment }else{ I(0); } } }