Pedro Ramalhete, Andreia Correia
2017 Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming - PPoPP '17  
RCU is, among other things, a well known mechanism for memory reclamation that is meant to be used in languages without an automatic Garbage Collector, unfortunately, it requires operating system support, which is currently provided only in Linux. An alternative is to use Userspace RCU (URCU) which has two variants that can be deployed on other operating systems, named Memory Barrier and Bullet Proof. We present a novel algorithm that implements the three core APIs of RCU: rcu read lock(), rcu
more » ... ead unlock(), and synchronize rcu(). Our algorithm uses one mutual exclusion lock and two reader-writer locks with trylock() capabilities, which means it does not need a language with a memory model or atomics API, and as such, it can be easily implemented in almost any language, regardless of the underlying CPU architecture, or operating system.
doi:10.1145/3018743.3019021 fatcat:dpr64aq34rguba2svcquhxerny