From a7a6804a2444ee05ff8b93f54973a9ce0f6511c1 Mon Sep 17 00:00:00 2001 From: Sergey Glushchenko Date: Fri, 12 Mar 2021 19:40:45 +0100 Subject: [PATCH] Clarify the immutability of a reference --- src/ch16-04-extensible-concurrency-sync-and-send.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ch16-04-extensible-concurrency-sync-and-send.md b/src/ch16-04-extensible-concurrency-sync-and-send.md index e4cf711fb9..4104e83d8e 100644 --- a/src/ch16-04-extensible-concurrency-sync-and-send.md +++ b/src/ch16-04-extensible-concurrency-sync-and-send.md @@ -33,9 +33,9 @@ we’ll discuss in Chapter 19. The `Sync` marker trait indicates that it is safe for the type implementing `Sync` to be referenced from multiple threads. In other words, any type `T` is -`Sync` if `&T` (a reference to `T`) is `Send`, meaning the reference can be -sent safely to another thread. Similar to `Send`, primitive types are `Sync`, -and types composed entirely of types that are `Sync` are also `Sync`. +`Sync` if `&T` (an immutable reference to `T`) is `Send`, meaning the reference +can be sent safely to another thread. Similar to `Send`, primitive types are +`Sync`, and types composed entirely of types that are `Sync` are also `Sync`. The smart pointer `Rc` is also not `Sync` for the same reasons that it’s not `Send`. The `RefCell` type (which we talked about in Chapter 15) and the