Replace "system order ambiguity" terminology to make it more clear it's a race condition
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
Calling the ordering between two systems "ambiguous" is itself ambiguous on what that entails, and our documentation on [`ambiguous_with`](https://docs.rs/bevy/0.14.1/bevy/ecs/prelude/trait.IntoSystemSetConfigs.html#method.ambiguous_with) doesn't help explain that, either. We should replace our use of "system order ambiguity" terminology with a different phrasing that more clearly shows that these are race conditions that can cause unexpected or unwanted results when the systems are run in a different order, which could change on startup, or randomly at runtime (the scheduler makes no such guarantees).
## What solution would you like?
This topic will surely lead to a bit of bikeshedding, but a good start would be to rename `ambiguous_with` to `allow_races_with`, and improve its documentation to note that "indeterminate order" can cause ordering changes at any point. As well as explain what race conditions between systems can lead to. For overall terminology replacement, consider "system races" or "scheduler races".
Ideally, we should have a central point of documentation for system ordering behavior, and what races can lead to.
## Additional context
[Discussion initiated in discord](https://discord.com/channels/691052431525675048/692572690833473578/1280619643198767154).
Contributor guide
Assessment
This issue has not been assessed yet.