diff --git a/include/faabric/loadbalance/LoadBalancePolicy.h b/include/faabric/loadbalance/LoadBalancePolicy.h index 75da1aebb..ac618787a 100644 --- a/include/faabric/loadbalance/LoadBalancePolicy.h +++ b/include/faabric/loadbalance/LoadBalancePolicy.h @@ -8,23 +8,23 @@ class LoadBalancePolicy { public: - virtual std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) = 0; + virtual std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) = 0; }; class FaasmDefaultPolicy : public LoadBalancePolicy { public: - std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override; + std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override; }; class LeastLoadAveragePolicy : public LoadBalancePolicy { public: - std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override; + std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override; }; class MostSlotsPolicy : public LoadBalancePolicy { public: - std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) override; + std::vector dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) override; }; \ No newline at end of file diff --git a/src/loadbalance/FaasmDefaultPolicy.cpp b/src/loadbalance/FaasmDefaultPolicy.cpp index 562aca51e..7663eb5dd 100644 --- a/src/loadbalance/FaasmDefaultPolicy.cpp +++ b/src/loadbalance/FaasmDefaultPolicy.cpp @@ -1,7 +1,7 @@ #include #include -std::vector FaasmDefaultPolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) +std::vector FaasmDefaultPolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) { std::vector hosts_delta; hosts_delta.reserve(number_of_messages); diff --git a/src/loadbalance/LeastLoadAveragePolicy.cpp b/src/loadbalance/LeastLoadAveragePolicy.cpp index c1aa8ed39..ac43784e2 100644 --- a/src/loadbalance/LeastLoadAveragePolicy.cpp +++ b/src/loadbalance/LeastLoadAveragePolicy.cpp @@ -1,7 +1,7 @@ #include #include -std::vector LeastLoadAveragePolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) +std::vector LeastLoadAveragePolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) { throw std::runtime_error("LeastLoadAveragePolicy::dispatch not implemented"); } \ No newline at end of file diff --git a/src/loadbalance/MostSlotsPolicy.cpp b/src/loadbalance/MostSlotsPolicy.cpp index f1814ef39..0ebc5f2a8 100644 --- a/src/loadbalance/MostSlotsPolicy.cpp +++ b/src/loadbalance/MostSlotsPolicy.cpp @@ -1,7 +1,7 @@ #include #include -std::vector MostSlotsPolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, faabric::scheduler::Scheduler& scheduler) +std::vector MostSlotsPolicy::dispatch(const std::set& warm_faaslets, int number_of_messages, const faabric::scheduler::Scheduler& scheduler) { throw std::runtime_error("MostSlotsPolicy::dispatch not implemented"); } \ No newline at end of file diff --git a/src/scheduler/Scheduler.cpp b/src/scheduler/Scheduler.cpp index 07f98780e..a250c3ef0 100644 --- a/src/scheduler/Scheduler.cpp +++ b/src/scheduler/Scheduler.cpp @@ -554,7 +554,7 @@ faabric::util::SchedulingDecision Scheduler::doSchedulingDecision( FaasmDefaultPolicy policy; const std::set& thisRegisteredHosts = getFunctionRegisteredHosts(firstMsg.user(), firstMsg.function(), false); - std::vector balanced_order = policy.dispatch(thisRegisteredHosts, remainder, this); // Messy DI to get access to methods + std::vector balanced_order = policy.dispatch(thisRegisteredHosts, remainder, *this); // Messy DI to get access to methods remainder -= balanced_order.size(); for (const auto& h : balanced_order) {