Bug fix for running multiple different benchmarks. Loop did not exit upon being able to take an offer.

This commit is contained in:
Renan DelValle 2016-09-19 17:51:32 -04:00
parent 3679510909
commit 8ddfe8e585

View file

@ -128,8 +128,10 @@ func (s *electronScheduler) ResourceOffers(driver sched.SchedulerDriver, offers
for _, offer := range offers {
select {
case <-s.shutdown:
log.Println("Shutting down: declining offer on [", offer.Hostname, "]")
log.Println("Shutting down: declining offer on [", offer.GetHostname(), "]")
driver.DeclineOffer(offer.Id, defaultFilter)
log.Println("Number of tasks running: ", s.tasksRunning)
if s.tasksRunning == 0 {
close(s.done)
}
@ -149,16 +151,21 @@ func (s *electronScheduler) ResourceOffers(driver sched.SchedulerDriver, offers
tasks = append(tasks, s.newTask(offer, task))
driver.LaunchTasks([]*mesos.OfferID{offer.Id}, tasks, defaultFilter)
taken = true
fmt.Println("Inst: ", *task.Instances)
*task.Instances--
if *task.Instances <= 0 {
fmt.Println("Tasks left: ", len(s.tasks)-1)
fmt.Println("Position: ", i)
// All instances of task have been scheduled
s.tasks[i] = s.tasks[len(s.tasks)-1]
s.tasks = s.tasks[:len(s.tasks)-1]
taken = true
}
break
}
}