Commit 02692626 authored by mir's avatar mir

Memory leak + bug at nr_dlsch_decoding.c

parent d406eb03
......@@ -10,6 +10,7 @@
#define TASK_MANAGER_UE
#define TASK_MANAGER_UE_DECODING
#define TASK_MANAGER_SIM
#include "task.h"
......
......@@ -481,8 +481,9 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
#ifdef TASK_MANAGER_UE_DECODING
trigger_all_task_manager(&get_nrUE_params()->man);
wait_spin_all_atomics_one(nbDecode, task_done);
for(size_t i = 0; i < nbDecode; ++i){
for(size_t i = 0; i < harq_process->C; ++i){
nr_ue_postDecode(phy_vars_ue, &arr[i], nbDecode == 1, b_size, b, &num_seg_ok, proc);
nbDecode--;
}
#else
while (nbDecode) {
......
......@@ -652,6 +652,12 @@ int main(int argc, char **argv)
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list[i].max_num_of_symbol_per_slot_list);
free(gNB->gNB_config.tdd_table.max_tdd_periodicity_list);
#ifdef TASK_MANAGER_SIM
void (*clean)(task_t*) = NULL;
free_task_manager(&gNB->man, clean);
free_task_manager(&nrUE_params.man, clean);
#endif
phy_free_nr_gNB(gNB);
free(RC.gNB[0]);
free(RC.gNB);
......
......@@ -916,10 +916,7 @@ int main(int argc, char **argv)
int n_errs = 0;
#ifdef TASK_MANAGER_SIM
int const log_cores = get_nprocs_conf();
assert(log_cores > 0);
// Assuming: Physical cores = Logical cores / 2
init_task_manager(&gNB->man, log_cores/2);
init_task_manager(&gNB->man, gNBthreads);
#else
initNamedTpool(gNBthreads, &gNB->threadPool, true, "gNB-tpool");
#endif
......@@ -1330,6 +1327,12 @@ int main(int argc, char **argv)
free(r_im[i]);
}
#ifdef TASK_MANAGER_SIM
void (*clean)(task_t*) = NULL;
free_task_manager(&nrUE_params.man, clean);
free_task_manager(&gNB->man, clean);
#endif
free(s_re);
free(s_im);
free(r_re);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment