Decrement active transactions after BEGIN_RESP.

This commit is contained in:
Lukas Steiner
2020-10-27 16:16:48 +01:00
parent f6752cb09a
commit 2d507fb327

View File

@@ -209,6 +209,16 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase)
if (returnValue == TLM_UPDATED)
payloadEventQueue.notify(tPayload, tPhase, tDelay);
}
if (activeTransactions[threadId] == maxActiveTransactions)
{
tlm_phase tPhase = END_REQ;
sc_time tDelay = SC_ZERO_TIME;
tlm_generic_payload &tPayload = *outstandingEndReq[threadId];
tSocket[static_cast<int>(threadId)]->nb_transport_bw(tPayload, tPhase, tDelay);
}
activeTransactions[threadId]--;
}
else
{
@@ -219,16 +229,6 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase)
{
payload.release();
if (activeTransactions[threadId] == maxActiveTransactions)
{
tlm_phase tPhase = END_REQ;
sc_time tDelay = SC_ZERO_TIME;
tlm_generic_payload &tPayload = *outstandingEndReq[threadId];
tSocket[static_cast<int>(threadId)]->nb_transport_bw(tPayload, tPhase, tDelay);
}
activeTransactions[threadId]--;
if (!pendingResponses[threadId].empty())
{
tlm_generic_payload &tPayload = *pendingResponses[threadId].front();