pub unsafe auto trait Send { }
Expand description
Types that can be transferred across thread boundaries.
This trait is automatically implemented when the compiler determines it’s appropriate.
An example of a non-Send
type is the reference-counting pointer
rc::Rc
. If two threads attempt to clone Rc
s that point to the same
reference-counted value, they might try to update the reference count at the
same time, which is undefined behavior because Rc
doesn’t use atomic
operations. Its cousin sync::Arc
does use atomic operations (incurring
some overhead) and thus is Send
.
See the Nomicon for more details.
Implementations on Foreign Types
impl Send for Argument
impl Send for FormatSpec
impl Send for Alignment
impl Send for Count
Implementors
1.6.0 · source
impl<'_, T, A> Send for sp_std::collections::vec_deque::Drain<'_, T, A> where
T: Send,
A: Allocator + Send,
1.6.0 · source
impl<'_, T, A> Send for sp_std::vec::Drain<'_, T, A> where
T: Send,
A: Send + Allocator,
NonNull
pointers are not Send
because the data they reference may be aliased.