pub(crate) unsafe fn enqueue<T>( buffer: *mut Cell<T>, enqueue_pos: &AtomicUsize, mask: usize, item: T, ) -> Result<(), T>