| 293 | } |
| 294 | |
| 295 | func (w *Worker) Stop() error { |
| 296 | slog.DebugContext(w.ctx, "stopping cache worker") |
| 297 | w.mux.Lock() |
| 298 | defer w.mux.Unlock() |
| 299 | |
| 300 | if !w.running { |
| 301 | return nil |
| 302 | } |
| 303 | |
| 304 | for _, worker := range w.toolsWorkes { |
| 305 | if err := worker.Stop(); err != nil { |
| 306 | slog.ErrorContext(w.ctx, "stopping tools updater", "error", err) |
| 307 | } |
| 308 | } |
| 309 | if w.garmToolsSync != nil { |
| 310 | if err := w.garmToolsSync.Stop(); err != nil { |
| 311 | slog.ErrorContext(w.ctx, "stopping garm tools sync", "error", err) |
| 312 | } |
| 313 | } |
| 314 | w.consumer.Close() |
| 315 | w.running = false |
| 316 | close(w.quit) |
| 317 | return nil |
| 318 | } |
| 319 | |
| 320 | func (w *Worker) handleEntityEvent(entityGetter params.EntityGetter, op common.OperationType) { |
| 321 | entity, err := entityGetter.GetEntity() |