28 #if ARM_COMPUTE_CPP_SCHEDULER
34 #if ARM_COMPUTE_OPENMP_SCHEDULER
40 #if !ARM_COMPUTE_CPP_SCHEDULER && ARM_COMPUTE_OPENMP_SCHEDULER
42 #elif ARM_COMPUTE_CPP_SCHEDULER && !ARM_COMPUTE_OPENMP_SCHEDULER
44 #elif ARM_COMPUTE_CPP_SCHEDULER && ARM_COMPUTE_OPENMP_SCHEDULER
50 std::shared_ptr<IScheduler> Scheduler::_custom_scheduler =
nullptr;
54 std::map<Scheduler::Type, std::unique_ptr<IScheduler>> init()
56 std::map<Scheduler::Type, std::unique_ptr<IScheduler>> m;
58 #if defined(ARM_COMPUTE_CPP_SCHEDULER)
60 #endif // defined(ARM_COMPUTE_CPP_SCHEDULER)
61 #if defined(ARM_COMPUTE_OPENMP_SCHEDULER)
63 #endif // defined(ARM_COMPUTE_OPENMP_SCHEDULER)
69 std::map<Scheduler::Type, std::unique_ptr<IScheduler>> Scheduler::_schedulers{};
81 return _custom_scheduler !=
nullptr;
85 return _schedulers.find(
t) != _schedulers.end();
91 return _scheduler_type;
98 if (_custom_scheduler ==
nullptr)
100 ARM_COMPUTE_ERROR(
"No custom scheduler has been setup. Call set(std::shared_ptr<IScheduler> &scheduler) "
101 "before Scheduler::get()");
105 return *_custom_scheduler;
110 if (_schedulers.empty())
112 _schedulers = init();
115 auto it = _schedulers.find(_scheduler_type);
116 if (it != _schedulers.end())
129 _custom_scheduler = std::move(scheduler);