Skip to content

Convert exclusive systems in Bevy to ordinary systems wherever possible #2767

@alice-i-cecile

Description

@alice-i-cecile

I recently noticed that several exclusive systems in Bevy no longer need to be exclusive systems: change_window and play_queued_audio_system were the two I initially noticed. These were originally exclusive systems due to an inability to use NonSend resources in parallelizable systems: this limitation has since been removed.

These and any other similar cases should be converted to ordinary parallel systems (in the same stage) to improve the performance of Bevy's apps by reducing unnecessary blocking, and better communicate intent (we really don't need access to everything in the world).

bevy_mod_debug_dump may be able to assist you in grabbing a list of all of the systems to inspect. Or just search for uses of .exclusive_system in the code base using your IDE of choice.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-Code-QualityA section of code that is hard to understand or changeC-PerformanceA change motivated by improving speed, memory usage or compile timesD-TrivialNice and easy! A great choice to get started with Bevy

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions