Fix priority order in BSR trigger. Was not being triggered if SRB2 data was pending in the buffer (#1771)

master
Ismael Gomez 4 years ago committed by GitHub
parent 942c28881d
commit bb691f0cbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -136,11 +136,11 @@ bool bsr_proc::check_highest_channel()
for (std::map<uint32_t, lcid_t>::iterator iter = lcgs[i].begin(); iter != lcgs[i].end(); ++iter) { for (std::map<uint32_t, lcid_t>::iterator iter = lcgs[i].begin(); iter != lcgs[i].end(); ++iter) {
// If new data available // If new data available
if (iter->second.new_buffer > iter->second.old_buffer) { if (iter->second.new_buffer > iter->second.old_buffer) {
// Check if this lcid has higher priority than any other LCID in the group // Check if this lcid has higher priority than any other LCID in the group for which data is available
bool is_max_priority = true; bool is_max_priority = true;
for (int j = 0; j < NOF_LCG; j++) { for (int j = 0; j < NOF_LCG; j++) {
for (std::map<uint32_t, lcid_t>::iterator iter2 = lcgs[j].begin(); iter2 != lcgs[j].end(); ++iter2) { for (std::map<uint32_t, lcid_t>::iterator iter2 = lcgs[j].begin(); iter2 != lcgs[j].end(); ++iter2) {
if (iter2->second.priority > iter->second.priority && iter2->second.old_buffer) { if (iter2->second.priority < iter->second.priority && iter2->second.old_buffer) {
is_max_priority = false; is_max_priority = false;
} }
} }

Loading…
Cancel
Save