From 8ddfe8e585266eee4f316e60f136548d8208c7b1 Mon Sep 17 00:00:00 2001 From: Renan DelValle Date: Mon, 19 Sep 2016 17:51:32 -0400 Subject: [PATCH] Bug fix for running multiple different benchmarks. Loop did not exit upon being able to take an offer. --- scheduler.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scheduler.go b/scheduler.go index 36a9e55..81640fe 100644 --- a/scheduler.go +++ b/scheduler.go @@ -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 + } }