Soved valgrind error on CQI updates in RR and PF schedulers

This commit is contained in:
Marco Miozzo
2012-01-20 16:26:55 +01:00
parent 9b791692ba
commit c0ed8a98f4
2 changed files with 20 additions and 10 deletions

View File

@@ -1060,13 +1060,15 @@ PfFfMacScheduler::RefreshDlCqiMaps(void)
NS_ASSERT_MSG (itMap != m_p10CqiRxed.end (), " Does not find CQI report for user " << (*itP10).first);
NS_LOG_INFO (this << " P10-CQI exired for user " << (*itP10).first);
m_p10CqiRxed.erase (itMap);
m_p10CqiTimers.erase (itP10);
std::map <uint16_t,uint32_t>::iterator temp = itP10;
itP10++;
m_p10CqiTimers.erase (temp);
}
else
{
(*itP10).second--;
itP10++;
}
itP10++;
}
// refresh DL CQI A30 Map
@@ -1081,13 +1083,15 @@ PfFfMacScheduler::RefreshDlCqiMaps(void)
NS_ASSERT_MSG (itMap != m_a30CqiRxed.end (), " Does not find CQI report for user " << (*itA30).first);
NS_LOG_INFO (this << " A30-CQI exired for user " << (*itA30).first);
m_a30CqiRxed.erase (itMap);
m_a30CqiTimers.erase (itA30);
std::map <uint16_t,uint32_t>::iterator temp = itA30;
itA30++;
m_a30CqiTimers.erase (temp);
}
else
{
(*itA30).second--;
itA30++;
}
itA30++;
}
return;
@@ -1110,13 +1114,15 @@ PfFfMacScheduler::RefreshUlCqiMaps(void)
NS_LOG_INFO (this << " UL-CQI exired for user " << (*itUl).first);
(*itMap).second.clear ();
m_ueCqi.erase (itMap);
m_ueCqiTimers.erase (itUl);
std::map <uint16_t,uint32_t>::iterator temp = itUl;
itUl++;
m_ueCqiTimers.erase (temp);
}
else
{
(*itUl).second--;
itUl++;
}
itUl++;
}
return;

View File

@@ -915,13 +915,15 @@ RrFfMacScheduler::RefreshDlCqiMaps(void)
NS_ASSERT_MSG (itMap != m_p10CqiRxed.end (), " Does not find CQI report for user " << (*itP10).first);
NS_LOG_INFO (this << " P10-CQI exired for user " << (*itP10).first);
m_p10CqiRxed.erase (itMap);
m_p10CqiTimers.erase (itP10);
std::map <uint16_t,uint32_t>::iterator temp = itP10;
itP10++;
m_p10CqiTimers.erase (temp);
}
else
{
(*itP10).second--;
itP10++;
}
itP10++;
}
return;
@@ -944,13 +946,15 @@ RrFfMacScheduler::RefreshUlCqiMaps(void)
NS_LOG_INFO (this << " UL-CQI exired for user " << (*itUl).first);
(*itMap).second.clear ();
m_ueCqi.erase (itMap);
m_ueCqiTimers.erase (itUl);
std::map <uint16_t,uint32_t>::iterator temp = itUl;
itUl++;
m_ueCqiTimers.erase (temp);
}
else
{
(*itUl).second--;
itUl++;
}
itUl++;
}
return;