
#ifndef PLS_PARALLEL_ITERATOR_TASK_IMPL_H
#define PLS_PARALLEL_ITERATOR_TASK_IMPL_H

namespace pls {
namespace internal {
namespace scheduling {
template<typename RandomIt, typename Function>
parallel_iterator_task<RandomIt, Function>::parallel_iterator_task
    (RandomIt first, RandomIt last, Function function, const abstract_task::id &id):
    abstract_task(0, id),
    first_{first},
    last_{last},
    function_{function} {}

template<typename RandomIt, typename Function>
void parallel_iterator_task<RandomIt, Function>::execute() {

}

template<typename RandomIt, typename Function>
bool parallel_iterator_task<RandomIt, Function>::split_task(base::swmr_spin_lock * /*lock*/) {
  return false;
}

template<typename RandomIt, typename Function>
bool parallel_iterator_task<RandomIt, Function>::internal_stealing(abstract_task *other_task) {
  return false;
}
}
}
}

#endif //PLS_PARALLEL_ITERATOR_TASK_IMPL_H
