diff --git a/core/tensorrt_engine.py b/core/tensorrt_engine.py index 15a3663..37e832f 100644 --- a/core/tensorrt_engine.py +++ b/core/tensorrt_engine.py @@ -49,6 +49,7 @@ class TensorRTEngine: self._input_binding = None self._output_bindings = [] self._stream = None + self._released = False self._logger = get_logger("tensorrt") self._lock = threading.Lock() @@ -348,8 +349,12 @@ class TensorRTEngine: self._memory_pool.clear() def release(self): - """释放引擎资源""" + """释放引擎资源(幂等调用)""" with self._lock: + if self._released: + return + self._released = True + self._release_resources() self._logger.info("TensorRT引擎资源已释放")