mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
Rollup merge of #98595 - cuviper:send-sync-thinbox, r=m-ou-se
Implement `Send` and `Sync` for `ThinBox<T>` Just like `Box<T>`, `ThinBox<T>` owns its data on the heap, so it should implement `Send` and `Sync` when `T` does. This extends tracking issue #92791.
This commit is contained in:
commit
e5b82de04c
@ -33,6 +33,14 @@ pub struct ThinBox<T: ?Sized> {
|
||||
_marker: PhantomData<T>,
|
||||
}
|
||||
|
||||
/// `ThinBox<T>` is `Send` if `T` is `Send` because the data is owned.
|
||||
#[unstable(feature = "thin_box", issue = "92791")]
|
||||
unsafe impl<T: ?Sized + Send> Send for ThinBox<T> {}
|
||||
|
||||
/// `ThinBox<T>` is `Sync` if `T` is `Sync` because the data is owned.
|
||||
#[unstable(feature = "thin_box", issue = "92791")]
|
||||
unsafe impl<T: ?Sized + Sync> Sync for ThinBox<T> {}
|
||||
|
||||
#[unstable(feature = "thin_box", issue = "92791")]
|
||||
impl<T> ThinBox<T> {
|
||||
/// Moves a type to the heap with its `Metadata` stored in the heap allocation instead of on
|
||||
|
Loading…
Reference in New Issue
Block a user