use std::sync::Arc;
pub(crate) struct SenderSyncer<T>(T);
#[allow(dead_code)]
impl<T> SenderSyncer<T> {
pub unsafe fn new(t: T) -> Self {
SenderSyncer(t)
}
pub unsafe fn inner(self) -> T {
self.0
}
pub unsafe fn inner_ref(&self) -> &T {
&self.0
}
pub unsafe fn inner_ref_mut(&mut self) -> &mut T {
&mut self.0
}
}
unsafe impl<T> Send for SenderSyncer<T> {}
unsafe impl<T> Sync for SenderSyncer<T> {}
pub struct ThreadLocalPointer<TD>(pub *mut Arc<TD>);
unsafe impl<TD> Send for ThreadLocalPointer<TD> {}
unsafe impl<TD> Sync for ThreadLocalPointer<TD> {}