#ifndef BOUNDED_COLLECTIVE_SCHEDULER_HPP
#define BOUNDED_COLLECTIVE_SCHEDULER_HPP

#include <cstddef>

typedef void (*collective_task_fn)(
    int taskIndex,
    int workerId,
    int workerCount,
    void* ctx
);

int run_bounded_collective_scheduler(
    int totalTasks,
    int workerCount,
    collective_task_fn taskFn,
    void* ctx,
    bool bindAffinity
);

#endif