made some methods private and extra locking

This commit is contained in:
Radu Ioan Fericean
2015-12-09 15:44:59 +02:00
parent 6b2e32944c
commit 1d1c8f99c5

View File

@@ -105,25 +105,27 @@ func (s *Scheduler) Reload(protect bool) {
case <-s.loopChecker:
t.Stop() // cancel reload
case <-t.C:
s.LoadActionPlans()
s.Restart()
s.loadActionPlans()
s.restart()
t.Stop()
s.waitingReload = false
}
}()
} else {
s.LoadActionPlans()
s.Restart()
s.loadActionPlans()
s.restart()
}
}
func (s *Scheduler) LoadActionPlans() {
func (s *Scheduler) loadActionPlans() {
actionPlans, err := s.storage.GetAllActionPlans()
if err != nil && err != utils.ErrNotFound {
utils.Logger.Warning(fmt.Sprintf("<Scheduler> Cannot get action plans: %v", err))
}
utils.Logger.Info(fmt.Sprintf("<Scheduler> processing %d action plans", len(actionPlans)))
// recreate the queue
s.Lock()
defer s.Unlock()
s.queue = engine.ActionPlanPriotityList{}
for key, aps := range actionPlans {
toBeSaved := false
@@ -167,7 +169,7 @@ func (s *Scheduler) LoadActionPlans() {
utils.Logger.Info(fmt.Sprintf("<Scheduler> queued %d action plans", len(s.queue)))
}
func (s *Scheduler) Restart() {
func (s *Scheduler) restart() {
if s.schedulerStarted {
s.restartLoop <- true
}