Commit Graph

2 Commits

Author SHA1 Message Date
Mike 984f7203e3 Make an unsafe accessor for SystemSchedule::systems (#23443)
# Objective

- #23414 made `SystemSchedule::systems` pub, but this can lead to
breaking invariants that `Schedule` expects. For example this allows
mutating the access which is used to prevent race conditions in the
multithreaded executor. This could also allow replacing systems, but
without initializing the access as the `Schedule` is meant to keep track
of which systems are unitialized.

## Solution

- Make the fields of `SystemWithAccess` private to make it harder to
modify the access. This is potentially a breaking change as
`SystemWithAccess` is pub, but the type is not exposed in our public
api's for `Schedule` in 0.18.
- Make an unsafe accessor for the `systems` field and make the field
private again.

## Testing

- Only checked that this compiles
2026-03-22 19:04:45 +00:00
atlv 1aea391609 Support Custom SystemExecutors (#23414)
# Objective

- Audio wants a realtime-safe executor with minimal checking. This means
no command application or multithreading etc.

## Solution

- Make it possible to supply our own executor.

## Testing

- Tests are updated
- New custom executor example

Note: reviewing commits individually is probably easier.
2026-03-19 20:23:33 +00:00