Trait sgx_tstd::marker::Send

1.0.0 · source · []
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 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

NonNull pointers are not Send because the data they reference may be aliased.

ThinBox<T> is Send if T is Send because the data is owned.

Auto implementors

impl Send for AesCbc

impl Send for Nonce

impl<A> !Send for AesCcm<A>

impl<A> Send for Aad<A>where
    A: Send,

impl Send for Nonce

impl Send for AesCtr

impl Send for Counter

impl<A> !Send for AesGcm<A>

impl<A> Send for Aad<A>where
    A: Send,

impl Send for Nonce

impl Send for EcKeyPair

impl Send for EcPublicKey

impl Send for EcShareKey

impl Send for EcSignature

impl !Send for AesCMac

impl Send for HashType

impl !Send for HMac

impl !Send for Sha1

impl !Send for Sha256

impl !Send for Sha384

impl Send for Sm2KeyPair

impl Send for Sm2ShareKey

impl !Send for Sm3

impl Send for Sm4Cbc

impl Send for Nonce

impl<A> !Send for Sm4Ccm<A>

impl<A> Send for Aad<A>where
    A: Send,

impl Send for Nonce

impl Send for Sm4Ctr

impl Send for Counter

impl<T = Nothing> !Send for Mmap<T>

impl<T = Nothing> !Send for MmapMut<T>

impl !Send for MapAddr

impl<T> Send for MapObject<T>where
    T: Send + Sync,

impl Send for Zero

impl Send for Nothing