bevy/crates
Luca Della Vedova d7b6e81fb2
Fix commands not being Send / Sync in 0.14 (#14392)
# Objective

Fixes Commands not being `Send` or `Sync` anymore in 0.14 by
implementing `Send` and `Sync` for `RawCommandQueue`.

## Solution

Reference discussion in
[discord](https://discord.com/channels/691052431525675048/691052431974465548/1259464518539411570).
It seems that in https://github.com/bevyengine/bevy/pull/13249, when
adding a `RawCommandQueue` variant to the `InternalQueue`, the `Send /
Sync` traits were not implemented for it, which bubbled up all the way
to `Commands` not being `Send / Sync` anymore.
I am not very familiar with the ECS internals so I can't say whether the
`RawCommandQueue` is safe to be shared between threads, but I know for
sure that before the linked PR `Commands` were indeed `Send` and `Sync`
so that PR broke "some workflows" (mandatory
[xkcd](https://xkcd.com/1172/)).

## Testing

This PR itself includes a compile test to make sure `Commands` will
implement `Send` and `Sync`. The test itself fails without the
implementation and succeeds with it.
Furthermore, if I cherry pick the test to a previous release (i.e. 0.13)
it indeed succeeds, showing that this is a regression specific to 0.14.

---------

Signed-off-by: Luca Della Vedova <lucadv@intrinsic.ai>
2024-09-05 21:35:40 +02:00
..
bevy_a11y Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_animation apply finished animations (#14743) 2024-09-05 21:35:40 +02:00
bevy_app Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_asset Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_audio Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_color Fix hue mixing for Lcha and Oklcha (#14468) 2024-09-05 21:34:05 +02:00
bevy_core Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_core_pipeline Fix TAA on camera with viewport (#14582) 2024-09-05 21:35:40 +02:00
bevy_derive Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dev_tools Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_diagnostic Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dylib Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dynamic_plugin Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_ecs Fix commands not being Send / Sync in 0.14 (#14392) 2024-09-05 21:35:40 +02:00
bevy_encase_derive Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_gilrs Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_gizmos Fix 3D Gizmo webgpu rendering (#14653) 2024-09-05 21:35:40 +02:00
bevy_gltf Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_hierarchy Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_input Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_internal Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_log Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_macro_utils Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_math Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_mikktspace Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_pbr Don’t prepare lights (and shadow map textures) for 2D cameras (#14574) 2024-09-05 21:34:05 +02:00
bevy_ptr Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_reflect Making DynamicEnum::is_dynamic() return true (#14732) 2024-09-05 21:35:40 +02:00
bevy_render Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_scene Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_sprite Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_state Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_tasks Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_text Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_time Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_transform Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_ui #14143 - fix bevy_ui padding (#14777) 2024-09-05 21:35:40 +02:00
bevy_utils Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_window Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_winit Release 0.14.1 2024-08-02 20:35:38 +02:00