Trait core::marker::Send 1.0.0
[−]
[src]
pub unsafe trait Send { }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 Rcs 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.
Implementors
impl<T: Send + ?Sized> Send for Unique<T>impl<T: ?Sized> !Send for Shared<T>impl<'a, T: Sync + ?Sized> Send for &'a Timpl<'a, T: Send + ?Sized> Send for &'a mut Timpl<T: ?Sized> !Send for *const Timpl<T: ?Sized> !Send for *mut Timpl<T> Send for AtomicPtr<T>impl<T> Send for Cell<T> where
T: Send,impl<T: ?Sized> Send for RefCell<T> where
T: Send,impl<'a, T: Sync> Send for Iter<'a, T>impl<'a, T: Send> Send for IterMut<'a, T>