diff --git a/cmake/modules/FindSoapySDR.cmake b/cmake/modules/FindSoapySDR.cmake index 2bc965f38..1ac1968e2 100644 --- a/cmake/modules/FindSoapySDR.cmake +++ b/cmake/modules/FindSoapySDR.cmake @@ -25,7 +25,6 @@ if(NOT SOAPYSDR_FOUND) find_path(SOAPYSDR_INCLUDE_DIRS NAMES Device.h HINTS $ENV{SOAPY_DIR}/include - $ENV{SOAPY_DIR}/include/SoapySDR PATHS ${SOAPYSDR_PKG_INCLUDE_DIRS} /usr/include/SoapySDR /usr/local/include/SoapySDR diff --git a/lib/include/srsran/asn1/asn1_utils.h b/lib/include/srsran/asn1/asn1_utils.h index 00d16817d..fad5cc228 100644 --- a/lib/include/srsran/asn1/asn1_utils.h +++ b/lib/include/srsran/asn1/asn1_utils.h @@ -263,7 +263,7 @@ public: std::copy(it + 1, end(), it); size_--; - return it + 1; + return it; } bool operator==(const dyn_array& other) const { diff --git a/lib/src/radio/test/benchmark_radio.cc b/lib/src/radio/test/benchmark_radio.cc index b80a2293b..aa6f08696 100644 --- a/lib/src/radio/test/benchmark_radio.cc +++ b/lib/src/radio/test/benchmark_radio.cc @@ -65,6 +65,7 @@ static pthread_t radio_thread; #include "srsgui/srsgui.h" #include static pthread_t plot_thread; +static bool plot_thread_launched = false; static sem_t plot_sem; static uint32_t plot_sf_idx = 0; static plot_real_t fft_plot[SRSRAN_MAX_RADIOS] = {}; @@ -256,6 +257,7 @@ static int init_plots(uint32_t frame_size) perror("pthread_create"); exit(-1); } + plot_thread_launched = true; return SRSRAN_SUCCESS; } @@ -324,7 +326,10 @@ static void* radio_thread_run(void* arg) #ifdef ENABLE_GUI if (fft_plot_enable) { - init_plots(frame_size); + if (init_plots(frame_size) != SRSRAN_SUCCESS) { + ERROR("Error: Could not init plots"); + goto clean_exit; + } sleep(1); } #endif /* ENABLE_GUI */ @@ -583,18 +588,22 @@ clean_exit: srsran_dft_plan_free(&idft_plan); #ifdef ENABLE_GUI - pthread_join(plot_thread, NULL); - srsran_dft_plan_free(&dft_spectrum); - for (uint32_t r = 0; r < nof_radios; r++) { - for (uint32_t p = 0; p < nof_ports; p++) { - uint32_t plot_idx = r * nof_ports + p; - if (fft_plot_buffer[plot_idx]) { - free(fft_plot_buffer[plot_idx]); + if (fft_plot_enable) { + if (plot_thread_launched == true) { + pthread_join(plot_thread, NULL); + } + srsran_dft_plan_free(&dft_spectrum); + for (uint32_t r = 0; r < nof_radios; r++) { + for (uint32_t p = 0; p < nof_ports; p++) { + uint32_t plot_idx = r * nof_ports + p; + if (fft_plot_buffer[plot_idx]) { + free(fft_plot_buffer[plot_idx]); + } } } - } - if (fft_plot_temp) { - free(fft_plot_temp); + if (fft_plot_temp) { + free(fft_plot_temp); + } } #endif /* ENABLE_GUI */ diff --git a/srsenb/src/stack/rrc/ue_meas_cfg.cc b/srsenb/src/stack/rrc/ue_meas_cfg.cc index 45e1ab2e2..36398c55a 100644 --- a/srsenb/src/stack/rrc/ue_meas_cfg.cc +++ b/srsenb/src/stack/rrc/ue_meas_cfg.cc @@ -434,8 +434,7 @@ bool apply_meascfg_updates(meas_cfg_s& meascfg, for (auto it = current_meascfg.meas_id_to_add_mod_list.begin(); it != current_meascfg.meas_id_to_add_mod_list.end();) { if (it->meas_obj_id == found_src_obj->meas_obj_id) { - auto rit = it++; - current_meascfg.meas_id_to_add_mod_list.erase(rit); + it = current_meascfg.meas_id_to_add_mod_list.erase(it); } else { ++it; }