pub fn recv<T>() -> T { let uc = UnsafeCell::<MaybeUninit<T>>::new(MaybeUninit::uninit()); critical_section::with(|cs| /* magic */); compiler_fence(Ordering::Acquire); let m = uc.into_inner(); unsafe { m.assume_init() } }