diff --git a/frogpilot/controls/frogpilot_planner.py b/frogpilot/controls/frogpilot_planner.py index 1410b0aba..7e4bcb14d 100644 --- a/frogpilot/controls/frogpilot_planner.py +++ b/frogpilot/controls/frogpilot_planner.py @@ -53,6 +53,10 @@ class FrogPilotPlanner: self.tracking_lead_filter = FirstOrderFilter(0, 0.5, DT_MDL) + def shutdown(self): + self.frogpilot_vcruise.slc.executor.shutdown(wait=False, cancel_futures=True) + self.frogpilot_weather.executor.shutdown(wait=False, cancel_futures=True) + def update(self, now, time_validated, sm, frogpilot_toggles): self.lead_one = sm["radarState"].leadOne diff --git a/frogpilot/frogpilot_process.py b/frogpilot/frogpilot_process.py index bda6d4ae9..23264ca30 100644 --- a/frogpilot/frogpilot_process.py +++ b/frogpilot/frogpilot_process.py @@ -120,6 +120,8 @@ def frogpilot_thread(): started = sm["deviceState"].started if not started and started_previously: + frogpilot_planner.shutdown() + frogpilot_toggles = update_toggles(frogpilot_variables, started, theme_manager, thread_manager, time_validated, params, frogpilot_toggles) transition_offroad(frogpilot_planner, theme_manager, thread_manager, time_validated, sm, params, frogpilot_toggles)