1.0.0[−][src]Trait swc_common::sync::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 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<T> Send for Sender<T> where
T: Send,
[src]
impl<T> Send for Sender<T> where
T: Send,
impl<T> Send for Mutex<T> where
T: Send + ?Sized,
[src]
impl<T> Send for Mutex<T> where
T: Send + ?Sized,
impl<T> Send for RwLock<T> where
T: Send + ?Sized,
[src]
impl<T> Send for RwLock<T> where
T: Send + ?Sized,
impl<T> Send for Receiver<T> where
T: Send,
[src]
impl<T> Send for Receiver<T> where
T: Send,
impl Send for Once
[src]
impl Send for Once
impl<'a, T> !Send for RwLockWriteGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for RwLockWriteGuard<'a, T> where
T: ?Sized,
impl<T> Send for JoinHandle<T>
[src]
impl<T> Send for JoinHandle<T>
impl !Send for ArgsOs
[src]
impl !Send for ArgsOs
impl<'a, T> !Send for RwLockReadGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for RwLockReadGuard<'a, T> where
T: ?Sized,
impl !Send for Args
[src]
impl !Send for Args
impl<T> Send for SyncSender<T> where
T: Send,
[src]
impl<T> Send for SyncSender<T> where
T: Send,
impl<'a, T> !Send for MutexGuard<'a, T> where
T: ?Sized,
[src]
impl<'a, T> !Send for MutexGuard<'a, T> where
T: ?Sized,
impl !Send for Select
[src]
impl !Send for Select
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
[src]
impl<'_, T> Send for IterMut<'_, T> where
T: Send,
impl<T> !Send for *const T where
T: ?Sized,
[src]
impl<T> !Send for *const T where
T: ?Sized,
impl<T> Send for AtomicPtr<T>
[src]
impl<T> Send for AtomicPtr<T>
impl<'_, T> Send for &'_ T where
T: Sync + ?Sized,
[src]
impl<'_, T> Send for &'_ T where
T: Sync + ?Sized,
impl<T> !Send for *mut T where
T: ?Sized,
[src]
impl<T> !Send for *mut T where
T: ?Sized,
impl<T> Send for RefCell<T> where
T: Send + ?Sized,
[src]
impl<T> Send for RefCell<T> where
T: Send + ?Sized,
impl Send for Waker
[src]
impl Send for Waker
impl<T> !Send for NonNull<T> where
T: ?Sized,
[src]
impl<T> !Send for NonNull<T> where
T: ?Sized,
NonNull
pointers are not Send
because the data they reference may be aliased.
impl !Send for LocalWaker
[src]
impl !Send for LocalWaker
impl<'_, T> Send for Iter<'_, T> where
T: Sync,
[src]
impl<'_, T> Send for Iter<'_, T> where
T: Sync,
impl<'_, T> Send for &'_ mut T where
T: Send + ?Sized,
[src]
impl<'_, T> Send for &'_ mut T where
T: Send + ?Sized,
impl<T> Send for Cell<T> where
T: Send + ?Sized,
[src]
impl<T> Send for Cell<T> where
T: Send + ?Sized,
impl<T> Send for LinkedList<T> where
T: Send,
[src]
impl<T> Send for LinkedList<T> where
T: Send,
impl<'a, T> Send for IterMut<'a, T> where
T: Send,
[src]
impl<'a, T> Send for IterMut<'a, T> where
T: Send,
impl<T> !Send for Weak<T> where
T: ?Sized,
[src]
impl<T> !Send for Weak<T> where
T: ?Sized,
impl<'a> Send for Drain<'a>
[src]
impl<'a> Send for Drain<'a>
impl<'a, T> Send for Drain<'a, T> where
T: Send,
[src]
impl<'a, T> Send for Drain<'a, T> where
T: Send,
impl<T> !Send for Rc<T> where
T: ?Sized,
[src]
impl<T> !Send for Rc<T> where
T: ?Sized,
impl<'a, T> Send for Iter<'a, T> where
T: Sync,
[src]
impl<'a, T> Send for Iter<'a, T> where
T: Sync,
impl<T> Send for IntoIter<T> where
T: Send,
[src]
impl<T> Send for IntoIter<T> where
T: Send,
impl<'a, T> Send for Drain<'a, T> where
T: Send,
[src]
impl<'a, T> Send for Drain<'a, T> where
T: Send,
impl<O, T> Send for OwningRef<O, T> where
O: Send,
T: ?Sized,
&'a T: Send,
[src]
impl<O, T> Send for OwningRef<O, T> where
O: Send,
T: ?Sized,
&'a T: Send,
impl<O, T> Send for OwningRefMut<O, T> where
O: Send,
T: ?Sized,
&'a mut T: Send,
[src]
impl<O, T> Send for OwningRefMut<O, T> where
O: Send,
T: ?Sized,
&'a mut T: Send,
impl<R, G, T> Send for ReentrantMutex<R, G, T> where
G: GetThreadId + Send,
R: RawMutex + Send,
T: Send + ?Sized,
impl<R, G, T> Send for ReentrantMutex<R, G, T> where
G: GetThreadId + Send,
R: RawMutex + Send,
T: Send + ?Sized,
impl<R, T> Send for Mutex<R, T> where
R: RawMutex + Send,
T: Send + ?Sized,
impl<R, T> Send for Mutex<R, T> where
R: RawMutex + Send,
T: Send + ?Sized,
impl<'a, R, T> Send for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + ?Sized,
<R as RawRwLock>::GuardMarker: Send,
impl<'a, R, T> Send for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + ?Sized,
<R as RawRwLock>::GuardMarker: Send,
impl<R, T> Send for RwLock<R, T> where
R: RawRwLock + Send,
T: Send + ?Sized,
impl<R, T> Send for RwLock<R, T> where
R: RawRwLock + Send,
T: Send + ?Sized,
impl<'a, R, T> Send for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + ?Sized,
<R as RawMutex>::GuardMarker: Send,
impl<'a, R, T> Send for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + ?Sized,
<R as RawMutex>::GuardMarker: Send,
impl<'a, R, T> Send for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + ?Sized,
<R as RawRwLock>::GuardMarker: Send,
impl<'a, R, T> Send for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + ?Sized,
<R as RawRwLock>::GuardMarker: Send,
impl<A> Send for SmallVec<A> where
A: Array,
<A as Array>::Item: Send,
impl<A> Send for SmallVec<A> where
A: Array,
<A as Array>::Item: Send,
impl<T> Send for Stealer<T> where
T: Send,
impl<T> Send for Stealer<T> where
T: Send,
impl<T> Send for Deque<T> where
T: Send,
impl<T> Send for Deque<T> where
T: Send,
impl Send for Handle
impl Send for Handle
impl Send for Collector
impl Send for Collector
impl<T> Send for Atomic<T> where
T: Send + Sync,
impl<T> Send for Atomic<T> where
T: Send + Sync,
impl<'a, A> Send for Drain<'a, A> where
A: Array + Send,
[src]
impl<'a, A> Send for Drain<'a, A> where
A: Array + Send,
impl<T> Send for AtomicOption<T> where
T: Send,
impl<T> Send for AtomicOption<T> where
T: Send,
impl<T> Send for CachePadded<T> where
T: Send,
impl<T> Send for CachePadded<T> where
T: Send,
impl Send for isize
impl Send for isize
impl Send for i8
impl Send for i8
impl Send for i16
impl Send for i16
impl Send for i32
impl Send for i32
impl Send for i64
impl Send for i64
impl Send for i128
impl Send for i128
impl Send for usize
impl Send for usize
impl Send for u8
impl Send for u8
impl Send for u16
impl Send for u16
impl Send for u32
impl Send for u32
impl Send for u64
impl Send for u64
impl Send for u128
impl Send for u128
impl Send for f32
impl Send for f32
impl Send for f64
impl Send for f64
impl Send for f32
impl Send for f32
impl Send for f64
impl Send for f64
impl Send for char
impl Send for char
impl Send for str
impl Send for str
impl Send for str
Loading content...
impl Send for str
Implementors
impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Send for Arc<T> where
T: Send + Sync + ?Sized,
impl<T> Send for OneThread<T>
[src]
impl<T> Send for OneThread<T>
impl<T> Send for swc_common::sync::Weak<T> where
T: Send + Sync + ?Sized,
[src]
impl<T> Send for swc_common::sync::Weak<T> where
T: Send + Sync + ?Sized,
Auto implementors
impl Send for FileName
impl Send for FileName
impl Send for SpanSnippetError
impl Send for SpanSnippetError
impl Send for ColorConfig
impl Send for ColorConfig
impl Send for Destination
impl Send for Destination
impl Send for Applicability
impl Send for Applicability
impl Send for DiagnosticId
impl Send for DiagnosticId
impl Send for Level
impl Send for Level
impl Send for Transparency
impl Send for Transparency
impl Send for Ordering
impl Send for Ordering
impl Send for EmitterWriter
impl Send for EmitterWriter
impl Send for Registry
impl Send for Registry
impl Send for CodeSuggestion
impl Send for CodeSuggestion
impl Send for Diagnostic
impl Send for Diagnostic
impl Send for DiagnosticStyledString
impl Send for DiagnosticStyledString
impl Send for ExplicitBug
impl Send for ExplicitBug
impl Send for FatalError
impl Send for FatalError
impl Send for FatalErrorMarker
impl Send for FatalErrorMarker
impl Send for Handler
impl Send for Handler
impl Send for HandlerFlags
impl Send for HandlerFlags
impl Send for SubDiagnostic
impl Send for SubDiagnostic
impl Send for Substitution
impl Send for Substitution
impl Send for SubstitutionPart
impl Send for SubstitutionPart
impl Send for BytePos
impl Send for BytePos
impl Send for ExpnInfo
impl Send for ExpnInfo
impl Send for FileLines
impl Send for FileLines
impl Send for FilePathMapping
impl Send for FilePathMapping
impl Send for Globals
impl Send for Globals
impl Send for Mark
impl Send for Mark
impl Send for MultiSpan
impl Send for MultiSpan
impl Send for SourceFile
impl Send for SourceFile
impl Send for SourceMap
impl Send for SourceMap
impl Send for Span
impl Send for Span
impl Send for SpanData
impl Send for SpanData
impl Send for SyntaxContext
impl Send for SyntaxContext
impl Send for AtomicBool
impl Send for AtomicBool
impl Send for AtomicUsize
impl Send for AtomicUsize
impl Send for SerialScope
impl Send for SerialScope
impl<'a> Send for WritableDst<'a>
impl<'a> Send for WritableDst<'a>
impl<'a> Send for DiagnosticBuilder<'a>
impl<'a> Send for DiagnosticBuilder<'a>
impl<T> Send for Lock<T> where
T: Send,
impl<T> Send for Lock<T> where
T: Send,
impl<T> Send for MTLock<T> where
T: Send,
impl<T> Send for MTLock<T> where
T: Send,
impl<T> Send for swc_common::sync::Once<T> where
T: Send,
impl<T> Send for swc_common::sync::Once<T> where
T: Send,
impl<T> Send for swc_common::sync::RwLock<T> where
T: Send,
impl<T> Send for swc_common::sync::RwLock<T> where
T: Send,