- make
join()
to work with&self
- reimplement
join()
in a robust way - remove non-static tasks
- fix multiple race conditions
- allow multiple parents of a task
- redesign fork semantics that's more robust and supports
join()
- add an ability to add an existing task as a fork
- support non-
'static
function bodies viarun_attached()
- truly joining the choir when waiting on a task via
join_active()
- always use
Arc<Choir>
- propagate panics from the tasks/workers
- expose
choir
in the tasks and execution contexts Condvar
-based thread blocking- MSRV bumped to 1.60
- all functors accept an argument of
ExecutionContext
- ability to fork tasks from a functor body
RunningTask::join()
instead ofChoir::wait_all
- intermediate
ProtoTask
type impl Clone for RunningTask
- everything implements
Debug
- new
Linearc
type for linearizedArc
- no more spontaneous blocking - the task synchronization is fixed
- dummy tasks support
- iterator tasks support
- auto-schedule idle tasks on drop
- replace
run_xx
andidle_xx
calls by justadd_xx
- no
Sync
bound - multi-tasks
- profiling integration
- benchmarks
- task dependencies
- proper names for things
- variable worker count
- basic task execution