Chore: Avoid stopping plugin (#74654)
This commit is contained in:
@@ -496,13 +496,17 @@ type FakeBackendPlugin struct {
|
||||
Decommissioned bool
|
||||
Running bool
|
||||
|
||||
// ExitedCheckDoneOrStopped is used to signal that the Exited() or Stop() method has been called.
|
||||
ExitedCheckDoneOrStopped chan struct{}
|
||||
|
||||
mutex sync.RWMutex
|
||||
backendplugin.Plugin
|
||||
}
|
||||
|
||||
func NewFakeBackendPlugin(managed bool) *FakeBackendPlugin {
|
||||
return &FakeBackendPlugin{
|
||||
Managed: managed,
|
||||
Managed: managed,
|
||||
ExitedCheckDoneOrStopped: make(chan struct{}),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,6 +523,7 @@ func (p *FakeBackendPlugin) Stop(_ context.Context) error {
|
||||
defer p.mutex.Unlock()
|
||||
p.Running = false
|
||||
p.StopCount++
|
||||
go func() { p.ExitedCheckDoneOrStopped <- struct{}{} }()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -544,6 +549,7 @@ func (p *FakeBackendPlugin) IsManaged() bool {
|
||||
func (p *FakeBackendPlugin) Exited() bool {
|
||||
p.mutex.RLock()
|
||||
defer p.mutex.RUnlock()
|
||||
go func() { p.ExitedCheckDoneOrStopped <- struct{}{} }()
|
||||
return !p.Running
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user