bevy/crates/bevy_tasks
Philip Degarmo 612c2552a5
Update multitask dependency to async-executor (#452)
* Switch from the deprecated `multitask` crate to `async-executor`
* async-executor appears to be essentially multitask 0.3
* use block_on in futures_lite instead of pollster because futures_lite is already in the dependency list of async-executor
2020-09-09 13:12:50 -07:00
..
examples Task System for Bevy (#384) 2020-08-29 12:35:41 -07:00
src Update multitask dependency to async-executor (#452) 2020-09-09 13:12:50 -07:00
Cargo.toml Update multitask dependency to async-executor (#452) 2020-09-09 13:12:50 -07:00
README.md Task System for Bevy (#384) 2020-08-29 12:35:41 -07:00

bevy_tasks

A refreshingly simple task executor for bevy. :)

This is a simple threadpool with minimal dependencies. The main usecase is a scoped fork-join, i.e. spawning tasks from a single thread and having that thread await the completion of those tasks. This is intended specifically for bevy as a lighter alternative to rayon for this specific usecase. There are also utilities for generating the tasks from a slice of data. This library is intended for games and makes no attempt to ensure fairness or ordering of spawned tasks.

It is based on multitask, a lightweight executor that allows the end user to manage their own threads. multitask is based on async-task, a core piece of async-std.

Dependencies

A very small dependency list is a key feature of this module

├── multitask
│   ├── async-task
│   ├── concurrent-queue
│   │   └── cache-padded
│   └── fastrand
├── num_cpus
│   └── libc
├── parking
└── pollster