25 lines
736 B
Go
25 lines
736 B
Go
|
var group sync.WaitGroup
|
||
|
group.Add(len(pm.plugins))
|
||
|
for _, p := range pm.plugins {
|
||
|
go func(p *plugin) {
|
||
|
defer group.Done()
|
||
|
if err := pm.restorePlugin(p); err != nil {
|
||
|
logrus.Errorf("Error restoring plugin '%s': %s", p.Name(), err)
|
||
|
return
|
||
|
}
|
||
|
pm.Lock()
|
||
|
pm.nameToID[p.Name()] = p.PluginObj.ID
|
||
|
requiresManualRestore := !pm.liveRestore && p.PluginObj.Active
|
||
|
pm.Unlock()
|
||
|
if requiresManualRestore {
|
||
|
// if liveRestore is not enabled, the plugin will be stopped now so we should enable it
|
||
|
if err := pm.enable(p); err != nil {
|
||
|
logrus.Errorf("Error enabling plugin '%s': %s", p.Name(), err)
|
||
|
}
|
||
|
}
|
||
|
}(p)
|
||
|
- group.Wait() // HL
|
||
|
}
|
||
|
+ group.Wait() // HL
|
||
|
return pm.save()
|