From ba398fa866f5f8a2d51e92eedcde2ea6aacce2b1 Mon Sep 17 00:00:00 2001 From: Iceber Gu Date: Fri, 7 Jun 2024 17:09:49 +0800 Subject: [PATCH] stop closed plugins that will be removed Signed-off-by: Iceber Gu --- pkg/adaptation/adaptation.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/pkg/adaptation/adaptation.go b/pkg/adaptation/adaptation.go index 9201e641..82dddd63 100644 --- a/pkg/adaptation/adaptation.go +++ b/pkg/adaptation/adaptation.go @@ -369,12 +369,22 @@ func (r *Adaptation) stopPlugins() { } func (r *Adaptation) removeClosedPlugins() { - active := []*plugin{} + var active, closed []*plugin for _, p := range r.plugins { - if !p.isClosed() { + if p.isClosed() { + closed = append(closed, p) + } else { active = append(active, p) } } + + if len(closed) != 0 { + go func() { + for _, plugin := range closed { + plugin.stop() + } + }() + } r.plugins = active }