![]() # Objective Simplify code in the `SingleThreadedExecutor` by removing a special case for exclusive systems. The `SingleThreadedExecutor` runs systems without immediately applying deferred buffers. That required calling `run_unsafe()` instead of `run()`, but that would `panic` for exclusive systems, so the code also needed a special case for those. Following #18076 and #18406, we have a `run_without_applying_deferred` method that has the exact behavior we want and works on exclusive systems. ## Solution Replace the code in `SingleThreadedExecutor` that runs systems with a single call to `run_without_applying_deferred()`. Also add this as a wrapper in the `__rust_begin_short_backtrace` module to preserve the special behavior for backtraces. |
||
---|---|---|
.. | ||
entity | ||
error | ||
event | ||
identifier | ||
observer | ||
query | ||
reflect | ||
relationship | ||
schedule | ||
storage | ||
system | ||
world | ||
archetype.rs | ||
batching.rs | ||
bundle.rs | ||
change_detection.rs | ||
component.rs | ||
entity_disabling.rs | ||
hierarchy.rs | ||
intern.rs | ||
label.rs | ||
lib.rs | ||
name.rs | ||
never.rs | ||
removal_detection.rs | ||
resource.rs | ||
spawn.rs | ||
traversal.rs |