On Fri, Dec 8, 2023 at 8:37 AM Benno Lossin <benno.lossin@xxxxxxxxx> wrote: > > +/// Zero-sized type to mark types not [`Send`]. > > +/// > > +/// Add this type as a field to your struct if your type should not be sent to a different task. > > +/// Since [`Send`] is an auto trait, adding a single field that is `!Send` will ensure that the > > +/// whole type is `!Send`. > > +/// > > +/// If a type is `!Send` it is impossible to give control over an instance of the type to another > > +/// task. This is useful when a type stores task-local information for example file descriptors. > > +pub type NotThreadSafe = PhantomData<*mut ()>; > > This should be in its own commit. Will do. > Then you can also change the usages of `PhantomData<*mut ()>` in > `Guard` and `TaskRef`. Will do. > It would be nice to use `NotThreadSafe` as the value instead of > `PhantomData`, since it is a bit confusing... That doesn't compile, unfortunately. > I think we might be able to also have a constant with the same name > that is just `pub const NotThreadSafe: NotThreadSafe = PhantomData;`. I can try to get this to work, but I worry that they will shadow each other. Alice