Fix data race in ue mac metrics.

This commit is contained in:
faluco 2021-09-15 13:32:30 +02:00 committed by faluco
parent 7dae4a491e
commit f96ee097b4
1 changed files with 8 additions and 1 deletions

View File

@ -146,7 +146,10 @@ void mac::reconfiguration(const uint32_t& cc_idx, const bool& enable)
// Implement Section 5.9
void mac::reset()
{
bzero(&metrics, sizeof(mac_metrics_t));
{
std::lock_guard<std::mutex> lock(metrics_mutex);
bzero(&metrics, sizeof(mac_metrics_t));
}
Info("Resetting MAC");
@ -201,6 +204,7 @@ void mac::run_tti(const uint32_t tti)
ra_procedure.update_rar_window(ra_window);
// Count TTI for metrics
std::lock_guard<std::mutex> lock(metrics_mutex);
for (uint32_t i = 0; i < SRSRAN_MAX_CARRIERS; i++) {
metrics[i].nof_tti++;
}
@ -346,10 +350,13 @@ void mac::mch_decoded(uint32_t len, bool crc)
pcap->write_dl_mch(mch_payload_buffer, len, true, phy_h->get_current_tti(), 0);
}
std::lock_guard<std::mutex> lock(metrics_mutex);
metrics[0].rx_brate += len * 8;
} else {
std::lock_guard<std::mutex> lock(metrics_mutex);
metrics[0].rx_errors++;
}
std::lock_guard<std::mutex> lock(metrics_mutex);
metrics[0].rx_pkts++;
}