
#ifndef PLS_PARALLEL_INVOKE_H
#define PLS_PARALLEL_INVOKE_H

#include "pls/internal/scheduling/fork_join_task.h"
#include "pls/internal/scheduling/scheduler.h"

namespace pls {
namespace algorithm {

template<typename Function1, typename Function2>
void invoke_parallel(const Function1 &function1, const Function2 &function2);

template<typename Function1, typename Function2, typename Function3>
void invoke_parallel(const Function1 &function1, const Function2 &function2, const Function3 &function3);

// ...and so on, add more if we decide to keep this design

}
}
#include "invoke_parallel_impl.h"

#endif //PLS_PARALLEL_INVOKE_H
