fix(vive-tracker): 删除重复的 __del__ 方法,增加生命周期日志

This commit is contained in:
Vinman 2026-06-29 17:08:53 +08:00
parent 15d9eae9a1
commit 68d7898603

View File

@ -81,20 +81,25 @@ class ViveTracker(metaclass=SingletonMeta):
def stop(self):
"""停止采集线程 (不释放 context, 可重新 start)"""
logger.info("Stopping Vive Tracker pose tracking...")
self.running = False
if self._collector_thread is not None:
self._collector_thread.join(timeout=2.0)
self._collector_thread = None
logger.info("Vive Tracker pose tracking stopped")
def close(self):
"""停止采集并释放 pysurvive context。"""
self.stop()
if self._context is not None:
try:
logger.info("Closing Vive Tracker pysurvive context...")
self._context.close()
except Exception:
pass
logger.info("Vive Tracker pysurvive context closed")
except Exception as e:
logger.debug(f"Vive Tracker context close error: {e}")
self._context = None
logger.info("Vive Tracker disconnected")
def __del__(self):
# 只做兜底清理,吞掉所有异常避免 __del__ 抛异常导致解释器崩溃
@ -103,16 +108,6 @@ class ViveTracker(metaclass=SingletonMeta):
except Exception:
pass
def __del__(self):
logger.info("Stopping Vive Tracker pose tracking...")
self.running = False
# 等待线程结束
if self._collector_thread:
self._collector_thread.join(timeout=2.0)
# 清理资源
self._context = None
logger.info("Vive Tracker disconnected")
# def list_devices(self):
# import pysurvive
# for obj in self._context.Objects():