Do not terminate transactions that haven't responded yet.

Do not terminate transactions in terminateRemainingTransactions that
had not sent the BEGIN_RESP phase.
To keep the total number of transactions in the GeneralInfo table in
sync, also decrement this value for every transaction that was rejected
in the database recording.
This commit is contained in:
2022-08-02 17:52:36 +02:00
parent 44b63d236c
commit 6fdc19a3bd

View File

@@ -239,7 +239,20 @@ void TlmRecorder::terminateRemainingTransactions()
removeTransactionFromSystem(*transaction->first);
}
else
recordPhase(*(transaction->first), END_RESP, sc_time_stamp());
{
std::string beginPhase = transaction->second.recordedPhases.back().name;
if (beginPhase == "RESP")
recordPhase(*(transaction->first), END_RESP, sc_time_stamp());
else
{
// Do not terminate transaction as it is not ready to be completed.
currentTransactionsInSystem.erase(transaction);
// Decrement totalNumTransactions as this transaction will not be recorded in the database.
totalNumTransactions--;
}
}
}
}