You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
warning: usage of an `Arc` that is not `Send` and `Sync`
= note: `Arc<NiepceApplication>` is not `Send` and `Sync` as:
= note: - the trait `Send` is not implemented for `NiepceApplication`
= note: - the trait `Sync` is not implemented for `NiepceApplication`
= help: consider using an `Rc` instead. `Arc` does not provide benefits for non `Send` and `Sync` types
= note: if you intend to use `Arc` with `Send` and `Sync` traits
= note: wrap the inner type with a `Mutex` or implement `Send` and `Sync` for `NiepceApplication`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync
The suggestion of using Rc is unhelpful because the intent is really to have Arc.
What would be great is diagnostic info telling me why it isn't Send + Sync by recursively telling me which inner type isn't, and why.
Related to this is rust-av/dav1d-rs#95. Here the type around the Arc is implementing Send+Sync, and blindly applying clippy's suggestion (instead of ignoring it or implementing it on the inner type) would be unsound.
…rcho
Reword `arc_with_non_send_sync` note and help messages
Addresses #12608 (comment)
Makes the note more concise and reframes the `Rc` suggestion around whether it crosses threads currently due to a manual `Send`/`Sync` impl or may do in the future
changelog: none
Description
The suggestion of using
Rc
is unhelpful because the intent is really to haveArc
.What would be great is diagnostic info telling me why it isn't Send + Sync by recursively telling me which inner type isn't, and why.
Version
Additional Labels
No response
The text was updated successfully, but these errors were encountered: