Expand description
Task Orchestration Framework.
This framework helps to organize the execution of a program
into a live task graph. In this model, all the work is happening
inside tasks, which are scheduled to run by the Choir.
Lifetime of a Task:
- Idle: task is just created.
- Initialized: function body is assigned.
- Scheduled: no more dependencies can be added to the task.
- Executing: task was dispatched from the queue by one of the workers.
- Done: task is retired. !
Modules§
Structs§
- Choir
- Main structure for managing tasks.
- Execution
Context - Context of a task execution body.
- Idle
Task - Task that is created but not running yet.
It will be scheduled on
run()or on drop. The ’a lifetime is responsible for the data in the closure of the task function. - Maybe
Panic - Return type for
joinfunctions that have to detect panics. Does actual panic on drop if any of the tasks have panicked. Note: an idiomaticResultis not used because it’s not actionable. - Notifier
- An object responsible to notify follow-up tasks.
- Proto
Task - Task construct without any functional logic.
- Running
Task - Task that is already scheduled for running.
- Worker
Handle - Handle object holding a worker thread alive.