xarc provides atomically swappable atomically refcounted smart pointers
as a safer building block for lockfree algorithms than raw atomic pointers.
Xarc is comparable to
Arc but with the additional ability to atomically
be swapped into and out of
Xarc is dereferenceable but cannot have its contents atomically swapped.
AtomicXarc can have its contents atomically swapped but is not dereferenceable.