From eb3e505143ca4aa078b6999626ab2b227dca23a9 Mon Sep 17 00:00:00 2001 From: ling Date: Fri, 12 Mar 2021 17:34:06 +0800 Subject: [PATCH] mindrt memory leak --- mindspore/lite/src/lite_mindrt.cc | 7 +++++++ mindspore/lite/src/lite_mindrt.h | 2 ++ mindspore/lite/src/mindrt_executor.h | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mindspore/lite/src/lite_mindrt.cc b/mindspore/lite/src/lite_mindrt.cc index c88667b8b1..7f0d475fd5 100644 --- a/mindspore/lite/src/lite_mindrt.cc +++ b/mindspore/lite/src/lite_mindrt.cc @@ -61,6 +61,13 @@ void LiteOpActor::SetOutputData(OpContext *context) { int MindrtInit() { return mindspore::Initialize("tcp://127.0.0.1:8080", "", "", "", 1); } +void MindrtTerminate(std::vector> actor_list) { + for (auto actor : actor_list) { + mindspore::Terminate(actor->GetAID()); + } + return; +} + std::vector> CreateOpActor(const std::vector &kernels) { std::vector> actors; for (auto kernel : kernels) { diff --git a/mindspore/lite/src/lite_mindrt.h b/mindspore/lite/src/lite_mindrt.h index 4bd71bda33..f549b9299c 100644 --- a/mindspore/lite/src/lite_mindrt.h +++ b/mindspore/lite/src/lite_mindrt.h @@ -88,6 +88,8 @@ class LiteOpActor : public OpActor { }; int MindrtInit(); +void MindrtTerminate(std::vector>); + std::vector> CreateOpActor(const std::vector &kernels); } // namespace lite diff --git a/mindspore/lite/src/mindrt_executor.h b/mindspore/lite/src/mindrt_executor.h index 9c22ce969b..184d2e70a0 100644 --- a/mindspore/lite/src/mindrt_executor.h +++ b/mindspore/lite/src/mindrt_executor.h @@ -29,7 +29,7 @@ namespace mindspore::lite { class MindrtExecutor : public Executor { public: MindrtExecutor() = default; - virtual ~MindrtExecutor() = default; + virtual ~MindrtExecutor() { MindrtTerminate(opActors_); } virtual int Prepare(const std::vector &kernels);