bevy/crates/bevy_utils/src
James Liu 9dde99fb96
Cleanup the multithreaded executor (#12969)
# Objective
Improve the code quality of the multithreaded executor.

## Solution
 * Remove some unused variables.
 * Use `Mutex::get_mut` where applicable instead of locking.
* Use a `startup_systems` FixedBitset to pre-compute the starting
systems instead of building it bit-by-bit on startup.
* Instead of using `FixedBitset::clear` and `FixedBitset::union_with`,
use `FixedBitset::clone_from` instead, which does only a single copy and
will not allocate if the target bitset has a large enough allocation.
* Replace the `Mutex` around `Conditions` with `SyncUnsafeCell`, and add
a `Context::try_lock` that forces it to be synchronized fetched
alongside the executor lock.

This might produce minimal performance gains, but the focus here is on
the code quality improvements.
2024-04-16 02:37:19 +00:00
..
cow_arc.rs impl Borrow and AsRef for CowArc (#11616) 2024-01-30 14:27:53 +00:00
default.rs Remove unnecessary path prefixes (#10749) 2023-11-28 23:43:40 +00:00
futures.rs Async pipeline compilation (#10812) 2024-02-05 13:50:50 +00:00
lib.rs Moves intern and label modules into bevy_ecs (#12772) 2024-04-08 15:34:11 +00:00
once.rs move once from bevy_log to bevy_utils, to allow for it's use in bevy_ecs (#11419) 2024-01-19 06:07:41 +00:00
parallel_queue.rs fix some typos (#12038) 2024-02-22 18:55:22 +00:00
short_names.rs change 'collapse_type_name' to retain enum types (#9587) 2023-08-26 14:50:12 +00:00
synccell.rs Replace pointer castings (as) by their API equivalent (#11818) 2024-02-11 23:19:36 +00:00
syncunsafecell.rs Cleanup the multithreaded executor (#12969) 2024-04-16 02:37:19 +00:00