It automatically [frees unreachable memory](https://aturon.github.io/blog/2015/08/27/epoch/#freeing-memory) for you and [collect garbage (thread-safely)](https://aturon.github.io/blog/2015/08/27/epoch/#managing-garbage) so you know the saying, if it quacks like a duck though the canonical name seem to be "Epoch-based reclamation"
Edit: * implementation in C - [https://github.com/rmind/libqsbr](https://github.com/rmind/libqsbr) * in C++ with accompanying blog:[https://blog.scrimpycat.io/simple-lock-free-epoch-memory-reclamation](https://blog.scrimpycat.io/simple-lock-free-epoch-memory-reclamation) and [https://github.com/ScrimpyCat/CommonC/blob/master/CommonC/EpochGarbageCollector.c](https://github.com/ScrimpyCat/CommonC/blob/master/CommonC/EpochGarbageCollector.c) * in rust by the author of my OP: [https://github.com/crossbeam-rs/crossbeam/tree/master/src/epoch](https://github.com/crossbeam-rs/crossbeam/tree/master/src/epoch) * Goldmine of papers: [https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes](https://kukuruku.co/post/lock-free-data-structures-the-inside-memory-management-schemes)/