A simple implementation of the Linux kernel's RCU synchronization primitive in userspace, using the membarrier
system call to keep readers very lightweight.
This is a toy implementation and shouldn't be used in production: it is only very lightly tested, doesn't check for errors everywhere it probably should, and scales poorly with many updaters. See liburcu if you need a real implementation.