Skip to content
Welcome to the new CppUtils documentation!
using CppUtils::Thread::Scheduler::Clock = std::chrono::steady_clock;
using CppUtils::Thread::Scheduler::TimePoint = Clock::time_point;
Scheduler::Scheduler( Clock::duration step = Clock::duration::zero(), std::size_t numberThreads = std::thread::hardware_concurrency(), std::function<void(std::exception_ptr)> onError = nullptr, std::function<void()> finally = nullptr);

Scheduler::~Scheduler() noexcept;

auto Scheduler::schedule(Task task, TimePoint when, const void* owner = nullptr) -> std::size_t;

auto Scheduler::schedule(Task task, Chrono::Duration auto delay, const void* owner = nullptr) -> std::size_t;

auto Scheduler::waitUntilFinished() -> void;

auto Scheduler::getScheduledTasksCount() const -> std::size_t;

auto Scheduler::flush() -> void;

auto Scheduler::cancel(std::size_t id) -> void;

auto Scheduler::cancelOwner(const void* owner) -> void;

auto Scheduler::cancelAll() -> void;