mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-04-02 01:36:34 +02:00
Update send-sync.md (#258)
Adding notes that these traits are not to be implemented directly. Yet they are still to be used as normal traits in generic constraints.
This commit is contained in:
parent
905d0a067e
commit
77a60d4101
@ -7,5 +7,16 @@ How does Rust know to forbid shared access across thread? The answer is in two t
|
|||||||
* [`Sync`][2]: a type `T` is `Sync` if it is safe to move a `&T` across a thread
|
* [`Sync`][2]: a type `T` is `Sync` if it is safe to move a `&T` across a thread
|
||||||
boundary.
|
boundary.
|
||||||
|
|
||||||
|
Both traits are not to be implemented. They are implemented automatically when
|
||||||
|
the compiler determines it’s appropriate.
|
||||||
|
|
||||||
[1]: https://doc.rust-lang.org/std/marker/trait.Send.html
|
[1]: https://doc.rust-lang.org/std/marker/trait.Send.html
|
||||||
[2]: https://doc.rust-lang.org/std/marker/trait.Sync.html
|
[2]: https://doc.rust-lang.org/std/marker/trait.Sync.html
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
* One can think of these traits as markers that the type has certain
|
||||||
|
thread-safety properties.
|
||||||
|
* They can be used in the generic constraints as normal traits.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user