From b3df3dd7826c93a6cdb1b138313c47888b3739e4 Mon Sep 17 00:00:00 2001 From: Akira Maruoka Date: Wed, 26 May 2021 05:11:17 +0900 Subject: [PATCH 1/3] Fixed the destruction order tflite::Interpreter and EdgeTPUContext --- src/runtime/contrib/edgetpu/edgetpu_runtime.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/runtime/contrib/edgetpu/edgetpu_runtime.h b/src/runtime/contrib/edgetpu/edgetpu_runtime.h index a7a57ff422e3..15a96b63efcf 100644 --- a/src/runtime/contrib/edgetpu/edgetpu_runtime.h +++ b/src/runtime/contrib/edgetpu/edgetpu_runtime.h @@ -43,6 +43,14 @@ namespace runtime { */ class EdgeTPURuntime : public TFLiteRuntime { public: + /*! + * \brief Destructor of EdgeTPURuntime. + * + * NOTE: tflite::Interpreter member should be destruct before the EdgeTpuContext member destruction. + * If the order is reverse, occurs SEGV in the destructor of tflite::Interpreter. + */ + ~EdgeTPURuntime() { interpreter_.reset(); } + /*! * \return The type key of the executor. */ From 86363d84836492b54c6cb61384ef1d96bb8b4984 Mon Sep 17 00:00:00 2001 From: Akira Maruoka Date: Wed, 26 May 2021 05:11:45 +0900 Subject: [PATCH 2/3] Fixed include omission --- src/runtime/contrib/edgetpu/edgetpu_runtime.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/runtime/contrib/edgetpu/edgetpu_runtime.h b/src/runtime/contrib/edgetpu/edgetpu_runtime.h index 15a96b63efcf..38923df4c764 100644 --- a/src/runtime/contrib/edgetpu/edgetpu_runtime.h +++ b/src/runtime/contrib/edgetpu/edgetpu_runtime.h @@ -30,6 +30,8 @@ #include #include +#include "edgetpu.h" + #include "../tflite/tflite_runtime.h" namespace tvm { From 531168ddba5323a8cb7dfc42bc0cda29262f84a0 Mon Sep 17 00:00:00 2001 From: Akira Maruoka Date: Wed, 9 Jun 2021 04:39:01 +0900 Subject: [PATCH 3/3] Formatted --- src/runtime/contrib/edgetpu/edgetpu_runtime.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/runtime/contrib/edgetpu/edgetpu_runtime.h b/src/runtime/contrib/edgetpu/edgetpu_runtime.h index 38923df4c764..341062f1c492 100644 --- a/src/runtime/contrib/edgetpu/edgetpu_runtime.h +++ b/src/runtime/contrib/edgetpu/edgetpu_runtime.h @@ -30,9 +30,8 @@ #include #include -#include "edgetpu.h" - #include "../tflite/tflite_runtime.h" +#include "edgetpu.h" namespace tvm { namespace runtime { @@ -47,9 +46,9 @@ class EdgeTPURuntime : public TFLiteRuntime { public: /*! * \brief Destructor of EdgeTPURuntime. - * - * NOTE: tflite::Interpreter member should be destruct before the EdgeTpuContext member destruction. - * If the order is reverse, occurs SEGV in the destructor of tflite::Interpreter. + * + * NOTE: tflite::Interpreter member should be destruct before the EdgeTpuContext member + * destruction. If the order is reverse, occurs SEGV in the destructor of tflite::Interpreter. */ ~EdgeTPURuntime() { interpreter_.reset(); }