Sha256: 8f1ab76280171c33c0bafaec9c1cb1d48cfb0d19a1ab2b768cdf7d7e40f07d00

Contents?: true

Size: 738 Bytes

Versions: 33

Compression:

Stored size: 738 Bytes

Contents

//! This module contains a type that can make `Send + !Sync` types `Sync` by
//! disallowing all immutable access to the value.
//!
//! A similar primitive is provided in the `sync_wrapper` crate.

pub(crate) struct SyncWrapper<T> {
    value: T,
}

// safety: The SyncWrapper being send allows you to send the inner value across
// thread boundaries.
unsafe impl<T: Send> Send for SyncWrapper<T> {}

// safety: An immutable reference to a SyncWrapper is useless, so moving such an
// immutable reference across threads is safe.
unsafe impl<T> Sync for SyncWrapper<T> {}

impl<T> SyncWrapper<T> {
    pub(crate) fn new(value: T) -> Self {
        Self { value }
    }

    pub(crate) fn into_inner(self) -> T {
        self.value
    }
}

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
wasmtime-25.0.1 ./ext/cargo-vendor/tokio-1.39.3/src/util/sync_wrapper.rs
wasmtime-25.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/util/sync_wrapper.rs
wasmtime-24.0.0 ./ext/cargo-vendor/tokio-1.39.3/src/util/sync_wrapper.rs
wasmtime-23.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-22.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-21.0.1 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-20.0.2 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-20.0.0 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-18.0.3 ./ext/cargo-vendor/tokio-1.36.0/src/util/sync_wrapper.rs
wasmtime-17.0.1 ./ext/cargo-vendor/tokio-1.35.1/src/util/sync_wrapper.rs
wasmtime-17.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/util/sync_wrapper.rs
wasmtime-16.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/util/sync_wrapper.rs
wasmtime-15.0.1 ./ext/cargo-vendor/tokio-1.35.1/src/util/sync_wrapper.rs
wasmtime-15.0.0 ./ext/cargo-vendor/tokio-1.35.1/src/util/sync_wrapper.rs
wasmtime-14.0.4 ./ext/cargo-vendor/tokio-1.33.0/src/util/sync_wrapper.rs
wasmtime-14.0.3 ./ext/cargo-vendor/tokio-1.33.0/src/util/sync_wrapper.rs
wasmtime-14.0.1 ./ext/cargo-vendor/tokio-1.33.0/src/util/sync_wrapper.rs
wasmtime-14.0.0 ./ext/cargo-vendor/tokio-1.33.0/src/util/sync_wrapper.rs
wasmtime-13.0.0 ./ext/cargo-vendor/tokio-1.32.0/src/util/sync_wrapper.rs
wasmtime-12.0.1 ./ext/cargo-vendor/tokio-1.32.0/src/util/sync_wrapper.rs