| 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "context" |
| 5 | "log/slog" |
| 6 | |
| 7 | "reasonix/internal/session" |
| 8 | ) |
| 9 | |
| 10 | // Run after controllers and lifecycle barriers release their bindings. |
| 11 | func (a *App) closeSessionServices() { |
| 12 | a.sessionServicesMu.Lock() |
| 13 | services := make([]*session.Service, 0, len(a.sessionServices)) |
| 14 | for _, service := range a.sessionServices { |
| 15 | services = append(services, service) |
| 16 | } |
| 17 | a.sessionServicesMu.Unlock() |
| 18 | for _, service := range services { |
| 19 | if err := service.Shutdown(context.Background()); err != nil { |
| 20 | slog.Warn("desktop: close session service", "err", err) |
| 21 | } |
| 22 | } |
| 23 | } |
| 24 |