bevy/crates/bevy_ecs/src/system
James Liu c5e89894f4 Remove task_pool parameter from par_for_each(_mut) (#4705)
# Objective
Fixes #3183. Requiring a `&TaskPool` parameter is sort of meaningless if the only correct one is to use the one provided by `Res<ComputeTaskPool>` all the time.

## Solution
Have `QueryState` save a clone of the `ComputeTaskPool` which is used for all `par_for_each` functions.

~~Adds a small overhead of the internal `Arc` clone as a part of the startup, but the ergonomics win should be well worth this hardly-noticable overhead.~~

Updated the docs to note that it will panic the task pool is not present as a resource.

# Future Work
If https://github.com/bevyengine/rfcs/pull/54 is approved, we can replace these resource lookups with a static function call instead to get the `ComputeTaskPool`.

---

## Changelog
Removed: The `task_pool` parameter of `Query(State)::par_for_each(_mut)`. These calls will use the `World`'s `ComputeTaskPool` resource instead.

## Migration Guide
The `task_pool` parameter for `Query(State)::par_for_each(_mut)` has been removed. Remove these parameters from all calls to these functions.

Before:
```rust
fn parallel_system(
   task_pool: Res<ComputeTaskPool>,
   query: Query<&MyComponent>,
) {
   query.par_for_each(&task_pool, 32, |comp| {
        ...
   });
}
```

After:

```rust
fn parallel_system(query: Query<&MyComponent>) {
   query.par_for_each(32, |comp| {
        ...
   });
}
```

If using `Query(State)` outside of a system run by the scheduler, you may need to manually configure and initialize a `ComputeTaskPool` as a resource in the `World`.
2022-05-30 16:59:38 +00:00
..
commands Add Commands::new_from_entities (#4423) 2022-05-14 14:40:09 +00:00
exclusive_system.rs Make change lifespan deterministic and update docs (#3956) 2022-05-09 14:00:16 +00:00
function_system.rs Make change lifespan deterministic and update docs (#3956) 2022-05-09 14:00:16 +00:00
mod.rs Fix unsoundness with Or/AnyOf/Option component access' (#4659) 2022-05-18 20:57:24 +00:00
query.rs Remove task_pool parameter from par_for_each(_mut) (#4705) 2022-05-30 16:59:38 +00:00
system_chaining.rs Make System responsible for updating its own archetypes (#4115) 2022-04-07 20:50:43 +00:00
system_param.rs Add some more documentation to SystemParam (#4787) 2022-05-17 22:24:50 +00:00
system.rs Make change lifespan deterministic and update docs (#3956) 2022-05-09 14:00:16 +00:00