StopAll calls Stop for all registered LifetimeModule instances.
()
| 137 | |
| 138 | // StopAll calls Stop for all registered LifetimeModule instances. |
| 139 | func (lt *LifetimeTracker) StopAll() error { |
| 140 | for i := len(lt.instances) - 1; i >= 0; i-- { |
| 141 | entry := lt.instances[i] |
| 142 | |
| 143 | if !entry.started { |
| 144 | continue |
| 145 | } |
| 146 | |
| 147 | if err := entry.mod.Stop(); err != nil { |
| 148 | lt.logger.Error("module stop failed", err, |
| 149 | "mod_name", entry.mod.Name(), "inst_name", entry.mod.InstanceName()) |
| 150 | continue |
| 151 | } |
| 152 | lt.logger.DebugMsg("module stopped", |
| 153 | "mod_name", entry.mod.Name(), "inst_name", entry.mod.InstanceName()) |
| 154 | |
| 155 | entry.started = false |
| 156 | } |
| 157 | return nil |
| 158 | } |
| 159 | |
| 160 | func NewLifetime(log *log.Logger) *LifetimeTracker { |
| 161 | return &LifetimeTracker{ |
no test coverage detected