163
}
164
166
>
if !atomic.CompareAndSwapInt32(
167
>
&wm.status,
168
>
common.DaemonStatusStarted,
169
>
common.DaemonStatusStopped,
170
>
) {
171
return
172
}
173
175
>
176
>
wm.namespaceRegistry.UnregisterStateChangeCallback(wm)
177
>
err := wm.serviceResolver.RemoveListener(fmt.Sprintf("%p", wm))
178
>
if err != nil {
179
wm.logger.Error("Unable to unregister membership listener", tag.Error(err))
180
}
182
>
wm.backgroundLoops.Wait()
183
>
184
>
wm.lock.Lock()
185
>
workers := expmaps.Values(wm.workers)
186
>
maps.DeleteFunc(wm.workers, func(_ namespace.ID, _ *perNamespaceWorker) bool { return true })
187
>
wm.lock.Unlock()
188
>
189
>
for _, worker := range workers {
190
worker.stopWorkerAndResetTimer()
191
worker.cancel()
192
}
193
195
}
196