Try to improve wording and fix dead link in description of arc_with_non_send_sync lint.

This commit is contained in:
Adam Reichold 2023-12-10 07:34:48 +01:00
parent 692f53fe8f
commit 33d8e47e98
No known key found for this signature in database

View File

@ -14,10 +14,10 @@
/// This lint warns when you use `Arc` with a type that does not implement `Send` or `Sync`.
///
/// ### Why is this bad?
/// `Arc<T>` is an Atomic `Rc<T>` and guarantees that updates to the reference counter are
/// Atomic. This is useful in multithreading scenarios. To send an `Arc<T>` across threads
/// and make use of the atomic ref counter, `T` must be [both `Send` and `Sync`](https://doc.rust-lang.org/std/sync/struct.Arc.html#impl-Send-for-Arc%3CT%3E),
/// either `T` should be made `Send + Sync` or an `Rc` should be used instead of an `Arc`
/// `Arc<T>` is a thread-safe `Rc<T>` and guarantees that updates to the reference counter
/// use atomic operations. To send an `Arc<T>` across thread boundaries and
/// share ownership between multiple threads, `T` must be [both `Send` and `Sync`](https://doc.rust-lang.org/std/sync/struct.Arc.html#thread-safety),
/// so either `T` should be made `Send + Sync` or an `Rc` should be used instead of an `Arc`
///
/// ### Example
/// ```no_run