cell selection and reest rrc procedures were causing a callstack reentrancy problem. This issue was circumvented with a defer_task call

master
Francisco Paisana 4 years ago
parent e43eab8b5f
commit 6803f48cc0

@ -679,11 +679,13 @@ void rrc::cell_selection_proc::then(const srslte::proc_result_t<cs_result_t>& pr
{ {
Info("Completed with %s.\n", proc_result.is_success() ? "success" : "failure"); Info("Completed with %s.\n", proc_result.is_success() ? "success" : "failure");
// Inform Connection Request Procedure // Inform Connection Request Procedure
rrc_ptr->task_sched.defer_task([this, proc_result]() {
if (rrc_ptr->conn_req_proc.is_busy()) { if (rrc_ptr->conn_req_proc.is_busy()) {
rrc_ptr->conn_req_proc.trigger(proc_result); rrc_ptr->conn_req_proc.trigger(proc_result);
} else if (rrc_ptr->connection_reest.is_busy()) { } else if (rrc_ptr->connection_reest.is_busy()) {
rrc_ptr->connection_reest.trigger(proc_result); rrc_ptr->connection_reest.trigger(proc_result);
} }
});
} }
/************************************** /**************************************

Loading…
Cancel
Save