From 31429d8d40f3364b717dd654e4e3d61885faa8fd Mon Sep 17 00:00:00 2001 From: juanmont <jjmontiel@opennebula.org> Date: Thu, 22 Mar 2018 15:57:04 +0100 Subject: [PATCH] F #1843: Sent scheduler like parameter --- src/scheduler/include/Scheduler.h | 11 ++++++++--- src/scheduler/src/sched/Scheduler.cc | 2 ++ src/scheduler/src/sched/mm_sched.cc | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/scheduler/include/Scheduler.h b/src/scheduler/include/Scheduler.h index 4af223fb9c..cff24bc1b2 100644 --- a/src/scheduler/include/Scheduler.h +++ b/src/scheduler/include/Scheduler.h @@ -43,14 +43,19 @@ class Scheduler: public ActionListener { public: + static Scheduler* sched; + void start(); virtual void register_policies(const SchedulerTemplate& conf){}; - static Scheduler& instance() + static Scheduler& instance(Scheduler* the_sched=0) { - static Scheduler _sched; - return _sched; + if ( the_sched != 0) + { + sched = the_sched; + } + return *sched; } float get_mem_ds_scale() diff --git a/src/scheduler/src/sched/Scheduler.cc b/src/scheduler/src/sched/Scheduler.cc index 30747e4eed..d5fe346087 100644 --- a/src/scheduler/src/sched/Scheduler.cc +++ b/src/scheduler/src/sched/Scheduler.cc @@ -37,6 +37,8 @@ using namespace std; +Scheduler* Scheduler::sched = 0; + /* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */ diff --git a/src/scheduler/src/sched/mm_sched.cc b/src/scheduler/src/sched/mm_sched.cc index 63b283db18..950d6a5639 100644 --- a/src/scheduler/src/sched/mm_sched.cc +++ b/src/scheduler/src/sched/mm_sched.cc @@ -15,6 +15,7 @@ /* -------------------------------------------------------------------------- */ #include "RankScheduler.h" +#include "Scheduler.h" #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> @@ -25,7 +26,7 @@ int main(int argc, char **argv) { - Scheduler& sched = RankScheduler::instance(); + Scheduler& sched = Scheduler::instance(new RankScheduler()); try {