[][src]Struct bevy_ecs::ParallelSystemStageExecutor

pub struct ParallelSystemStageExecutor { /* fields omitted */ }

Executes the stage in parallel by analyzing system dependencies. System execution order is undefined except under the following conditions:

  • systems in earlier stages run before systems in later stages
  • in a given stage, systems that mutate [archetype+component] X cannot run before systems registered before them that read/write [archetype+component] X
  • in a given stage, systems the read [archetype+component] X cannot run before systems registered before them that write [archetype+component] X
  • in a given stage, systems that mutate resource Y cannot run before systems registered before them that read/write resource Y
  • in a given stage, systems the read resource Y cannot run before systems registered before them that write resource Y

Implementations

impl ParallelSystemStageExecutor[src]

pub fn system_dependents(&self) -> &[Vec<usize>][src]

pub fn system_dependencies(&self) -> &[FixedBitSet][src]

pub fn prepare_to_next_thread_local(
    &mut self,
    world: &World,
    systems: &mut [Box<dyn System<In = (), Out = ()>>],
    stage_changed: bool,
    next_thread_local_index: usize
) -> Range<usize>
[src]

Sets up state to run the next "batch" of systems. Each batch contains 0..n systems and optionally a thread local system at the end. After this function runs, a bunch of state in self will be populated for systems in this batch. Returns the range of systems that we prepared, up to but NOT including the thread local system that MIGHT be at the end of the range

pub fn run_systems(
    &self,
    world: &World,
    resources: &Resources,
    systems: &mut [Box<dyn System<In = (), Out = ()>>],
    prepared_system_range: Range<usize>,
    compute_pool: &TaskPool
)
[src]

Runs the non-thread-local systems in the given prepared_system_range range

Trait Implementations

impl Default for ParallelSystemStageExecutor[src]

impl SystemStageExecutor for ParallelSystemStageExecutor[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Downcast for T where
    T: Any
[src]

impl<T> DowncastSync for T where
    T: Send + Sync + Any
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,