unsafe fn run_recursive(&self, i: usize, ctx: C::View<'_>, world: &W) {
        // safety: the caller ensures nothing else is accessing systems[i]
        self.systems[i].get_mut().run(ctx, world);

        self.static_dependants[i]
            .par_iter(&self.job_system)
            .for_each(|dep| {
                if self.awaiting[*dep].fetch_sub(1, Ordering::Relaxed) == 1 {
                    // safety: each dependency is unique, so run_recursive is safe to call
                    self.run_recursive(*dep, ctx, world);
                }
            });
    }
/// Recursively execute through the generated depedency cascade and exhaust it.
///
/// # Safety
///
/// Ensure the system indexed by `i` is only accessed once.
Recursively execute through the generated depedency cascade and exhaust it.
Recursively execute through the generated depedency cascade and exhaust it .
unsafe fn run_recursive(&self, i: usize, ctx: C::View<'_>, world: &W) {
        // safety: the caller ensures nothing else is accessing systems[i]
        self.systems[i].get_mut().run(ctx, world);
        self.static_dependants[i]
            .par_iter(&self.job_system)
            .for_each(|dep| {
                if self.awaiting[*dep].fetch_sub(1, Ordering::Relaxed) == 1 {
                    // safety: each dependency is unique, so run_recursive is safe to call
                    self.run_recursive(*dep, ctx, world);
                }
            });
    }
unsafe fn run_recursive ( & self , i : usize , ctx : C :: View < ' _ > , world : & W ) { // safety: the caller ensures nothing else is accessing systems[i] self . systems [ i ] . get_mut ( ) . run ( ctx , world ) ; self . static_dependants [ i ] . par_iter ( & self . job_system ) . for_each ( | dep | { if self . awaiting [ * dep ] . fetch_sub ( 1 , Ordering :: Relaxed ) == 1 { // safety: each dependency is unique, so run_recursive is safe to call self . run_recursive ( * dep , ctx , world ) ; } } ) ; }
Recursively execute through the generated depedency cascade and exhaust it.
Recursively execute through the generated depedency cascade and exhaust it .
&self
i
usize
ctx
C::View<'_>
world
&W
&self
i
usize
ctx
C::View<'_>
world
&W
safety
Ensure the system indexed by `i` is only accessed once.
Ensure the system indexed by ` i ` is only accessed once .