In the affected versions of this crate,
AtomicOption<T> unconditionally implements Sync.
This allows programmers to move non-Sync types across thread boundaries (e.g. Rc<T>, Arc<Cell<T>>), which can lead to data races and undefined behavior.
It is also possible to send non-Send types like std::sync::MutexGuard to other threads, which can lead to undefined behavior.