diff --git a/applications/debug/uart_echo/uart_echo.c b/applications/debug/uart_echo/uart_echo.c index 0291c9e79..9c65910a0 100644 --- a/applications/debug/uart_echo/uart_echo.c +++ b/applications/debug/uart_echo/uart_echo.c @@ -283,13 +283,14 @@ static UartEchoApp* uart_echo_app_alloc(uint32_t baudrate) { static void uart_echo_app_free(UartEchoApp* app) { furi_assert(app); + furi_hal_serial_async_rx_stop(app->serial_handle); + furi_hal_serial_deinit(app->serial_handle); + furi_hal_serial_control_release(app->serial_handle); + furi_thread_flags_set(furi_thread_get_id(app->worker_thread), WorkerEventStop); furi_thread_join(app->worker_thread); furi_thread_free(app->worker_thread); - furi_hal_serial_deinit(app->serial_handle); - furi_hal_serial_control_release(app->serial_handle); - // Free views view_dispatcher_remove_view(app->view_dispatcher, 0); diff --git a/applications/external b/applications/external index 676d035fb..c3547182b 160000 --- a/applications/external +++ b/applications/external @@ -1 +1 @@ -Subproject commit 676d035fb6c8af494d6a12570f60eede7e04f7d5 +Subproject commit c3547182b2beba178d0be3eb2cbf90da7023b0a3 diff --git a/applications/main/subghz/helpers/subghz_gps.c b/applications/main/subghz/helpers/subghz_gps.c index de34d8b77..56108620a 100644 --- a/applications/main/subghz/helpers/subghz_gps.c +++ b/applications/main/subghz/helpers/subghz_gps.c @@ -147,6 +147,7 @@ SubGhzGPS* subghz_gps_init() { void subghz_gps_deinit(SubGhzGPS* subghz_gps) { furi_assert(subghz_gps); + furi_hal_serial_async_rx_stop(subghz_gps->serial_handle); furi_hal_serial_deinit(subghz_gps->serial_handle); furi_hal_serial_control_release(subghz_gps->serial_handle);