IceShard 1
A personal game engine project, with development focused on 2D/2.5D games.
Loading...
Searching...
No Matches
task_utils.hxx File Reference
#include <ice/task.hxx>
#include <ice/task_types.hxx>
#include <ice/task_scheduler.hxx>
#include <ice/sync_manual_events.hxx>
#include <ice/span.hxx>
#include <ice/profiler.hxx>
#include <ice/expected.hxx>
#include "impl/task_utils.inl"

Go to the source code of this file.

Namespaces

namespace  ice
 SPDX-License-Identifier: MIT.

Functions

auto ice::resume_on (ice::TaskScheduler &scheduler) noexcept
auto ice::await_tasks (ice::Span< ice::Task<> > tasks) noexcept -> ice::Task<>
auto ice::await_on (ice::Task<> task, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
auto ice::await_on (ice::Span< ice::Task<> > tasks, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
template<typename T>
auto ice::await_on (ice::Task< T > task, ice::TaskScheduler &resumer) noexcept -> ice::Task< T >
auto ice::await_scheduled (ice::Task<> task, ice::TaskScheduler &scheduler) noexcept -> ice::Task<>
auto ice::await_scheduled (ice::Span< ice::Task<> > tasks, ice::TaskScheduler &scheduler) noexcept -> ice::Task<>
template<typename T>
auto ice::await_scheduled (ice::Task< T > task, ice::TaskScheduler &scheduler) noexcept -> ice::Task< T >
auto ice::await_scheduled_queue (ice::TaskQueue &queue, ice::TaskScheduler &scheduler) noexcept -> ice::Task< bool >
auto ice::await_scheduled_queue (ice::TaskQueue &queue, void *result_ptr, ice::TaskScheduler &scheduler) noexcept -> ice::Task< bool >
auto ice::await_scheduled_on (ice::Task<> task, ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
template<typename T>
auto ice::await_scheduled_on (ice::Task<> task, ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task< T >
auto ice::await_scheduled_on (ice::Span< ice::Task<> > tasks, ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
auto ice::await_scheduled_queue_on (ice::TaskQueue &queue, ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
auto ice::await_scheduled_queue_on (ice::TaskQueue &queue, void *result_ptr, ice::TaskScheduler &scheduler, ice::TaskScheduler &resumer) noexcept -> ice::Task<>
bool ice::execute_task (ice::Task<> task) noexcept
bool ice::execute_tasks (ice::Span< ice::Task<> > tasks) noexcept
bool ice::schedule_task (ice::Task<> task, ice::TaskScheduler &scheduler) noexcept
bool ice::schedule_tasks (ice::Span< ice::Task<> > tasks, ice::TaskScheduler &scheduler) noexcept
bool ice::schedule_queue (ice::TaskQueue &queue, ice::TaskScheduler &scheduler) noexcept
bool ice::schedule_queue (ice::TaskQueue &queue, void *result_ptr, ice::TaskScheduler &scheduler) noexcept
void ice::wait_for (ice::Task<> task) noexcept
void ice::wait_for (ice::Span< ice::Task<> > tasks) noexcept
void ice::wait_for_scheduled (ice::Task<> task, ice::TaskScheduler &scheduler) noexcept
void ice::wait_for_scheduled (ice::Span< ice::Task<> > tasks, ice::TaskScheduler &scheduler) noexcept
template<typename T>
auto ice::wait_for_result (ice::Task< T > task) noexcept -> T
template<typename T>
void ice::wait_for_result (ice::Task< T > task, T &out_result) noexcept
template<typename T>
void ice::wait_for_result (ice::Span< ice::Task< T > > tasks, ice::Span< T > out_results) noexcept
template<typename T>
void ice::wait_for_result_scheduled (ice::Task< T > task, ice::TaskScheduler &scheduler, T &out_result) noexcept
template<typename T>
void ice::wait_for_result_scheduled (ice::Span< ice::Task< T > > tasks, ice::TaskScheduler &scheduler, ice::Span< T > out_results) noexcept
void ice::manual_wait_for (ice::ManualResetEvent &evnt, ice::Task<> task) noexcept
void ice::manual_wait_for (ice::ManualResetBarrier &evnt, ice::Task<> task) noexcept
void ice::manual_wait_for (ice::ManualResetBarrier &evnt, ice::Span< ice::Task<> > tasks) noexcept
void ice::manual_wait_for_scheduled (ice::ManualResetEvent &evnt, ice::Task<> task, ice::TaskScheduler &scheduler) noexcept
void ice::manual_wait_for_scheduled (ice::ManualResetBarrier &evnt, ice::Task<> task, ice::TaskScheduler &scheduler) noexcept
void ice::manual_wait_for_scheduled (ice::ManualResetBarrier &evnt, ice::Span< ice::Task<> > tasks, ice::TaskScheduler &scheduler) noexcept
template<typename T>
auto ice::wait_for_expected (ice::TaskExpected< T > task) noexcept -> ice::Expected< T >
auto ice::await_filtered_queue_on (ice::TaskQueue &queue, ice::TaskScheduler &resumer, FnTaskQueueFilter filter, void *userdata=nullptr) noexcept -> ice::Task< bool >