1914a3f288
# Objective Attempting to build `bevy_tasks` produces the following error: ``` error[E0599]: no method named `is_finished` found for struct `async_executor::Task` in the current scope --> /[...]]/bevy/crates/bevy_tasks/src/task.rs:51:16 | 51 | self.0.is_finished() | ^^^^^^^^^^^ method not found in `async_executor::Task<T>` ``` It looks like this was introduced along with `Task::is_finished`, which delegates to `async_task::Task::is_finished`. However, the latter was only introduced in `async-task` 4.2.0; `bevy_tasks` does not explicitly depend on `async-task` but on `async-executor` ^1.3.0, which in turn depends on `async-task` ^4.0.0. ## Solution Add an explicit dependency on `async-task` ^4.2.0. |
||
---|---|---|
.. | ||
examples | ||
src | ||
Cargo.toml | ||
README.md |
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