It is a plain old segfault. Fortunately your crate only has 2 lines of unsafe code so we know the bug must be in one of those.
let val = self.values[index].swap(&mut None, Ordering::SeqCst);
None is part of the stack frame of this function and goes out of scope, which leaves
&mut None (of type
*mut Option<V>) as a dangling pointer.