mirror of https://github.com/PentHertz/srsLTE.git
Solve concurrency issue when setting up SCell measurement
This commit is contained in:
parent
7185ec6beb
commit
93b35676e7
|
@ -249,6 +249,9 @@ void phy::configure_prach_params()
|
|||
|
||||
void phy::set_cells_to_meas(uint32_t earfcn, const std::set<uint32_t>& pci)
|
||||
{
|
||||
// As the SCell configuration is performed asynchronously through the cmd_worker, append the command adding the
|
||||
// measurements to avoid a concurrency issue
|
||||
cmd_worker.add_cmd([this, earfcn, pci]() {
|
||||
// Check if the EARFCN matches with serving cell
|
||||
uint32_t pcell_earfcn = 0;
|
||||
sfsync.get_current_cell(nullptr, &pcell_earfcn);
|
||||
|
@ -280,11 +283,13 @@ void phy::set_cells_to_meas(uint32_t earfcn, const std::set<uint32_t>& pci)
|
|||
}
|
||||
|
||||
// Configure a the empty carrier as it was CA
|
||||
logger_phy.info("Setting new SCell measurement cc_idx=%d, earfcn=%d, pci=%d...", cc_empty, earfcn, cell.id);
|
||||
set_scell(cell, cc_empty, earfcn);
|
||||
}
|
||||
|
||||
// Finally, set the serving cell measure
|
||||
sfsync.set_cells_to_meas(earfcn, pci);
|
||||
});
|
||||
}
|
||||
|
||||
void phy::meas_stop()
|
||||
|
|
Loading…
Reference in New Issue