bevy/crates/bevy_tasks
Philip Degarmo ec8fd57c45
When a task scope produces <= 1 task to run, run it on the calling thread immediately. (#932)
While generally speaking the calling thread would have picked up the task first anyways, I don't think it makes much sense usually to block the calling thread until another thread wakes and does the work.
2020-11-27 12:14:44 -08:00
..
examples use wasm-friendly instant::Instant everywhere (#895) 2020-11-21 16:38:24 -08:00
src When a task scope produces <= 1 task to run, run it on the calling thread immediately. (#932) 2020-11-27 12:14:44 -08:00
Cargo.toml use wasm-friendly instant::Instant everywhere (#895) 2020-11-21 16:38:24 -08:00
README.md update dependencies (#470) 2020-09-10 12:54:24 -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 async-executor, a lightweight executor that allows the end user to manage their own threads. async-executor is based on async-task, a core piece of async-std.

Dependencies

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

├── async-executor
│   ├── async-task
│   ├── concurrent-queue
│   │   └── cache-padded
│   └── fastrand
├── num_cpus
│   └── libc
├── parking
└── futures-lite