diff --git a/rtk_rover_recorder.py b/rtk_rover_recorder.py index e6606ba..b8120b7 100644 --- a/rtk_rover_recorder.py +++ b/rtk_rover_recorder.py @@ -516,13 +516,16 @@ class Recorder: self.csv_fh.flush() def close(self): - with self.lock: + # Do not call self.stop() while holding self.lock: + # stop() also takes the same lock -> deadlock with threading.Lock. + try: + if self.session_id: + self.stop() + finally: try: - if self.session_id: - self.stop() - finally: - try: self.conn.close() - except: pass + self.conn.close() + except Exception: + pass # -------------------- UI helpers -------------------- def fix_type_str(pvt) -> str: