[1] https://github.com/Amanieu/seqlock/blob/master/src/lib.rs
... in spite of my earlier claims in the previously
mentioned mailing list discussion.Readers using read_seqbegin() can still access the protected data.
[1] https://www.quora.com/What-is-difference-between-the-RCU-rea...
RCU avoids this issue by essentially delaying freeing of objects until there are no longer any threads accessing it. But it requires very complicated mechanisms to track all active threads, whereas a seqlock is a very simple and self-contained.
In both cases the read-side overhead is tiny: for example on x86, you don't need any memory barrier or atomic instructions.