The hazard pointer method [4] for safe reclamation is capable of protecting individual dynamic objects, including individual nodes of linked structures. However, on its own, it does not protect the descendants of protected nodes for unconditional traversal. We present a new algorithm that extends the hazard pointer algorithm to support unconditional traversal though immutable links of acyclic structures. It has an important added advantage of allowing the reclamation of nodes at any depth with their ancestors in the same pass over hazard pointers. Achieving these advantages does not incur any extra computing cost in protection operations, which are the common case. A counter is added to each object for holding the number of inbound immutable links. Such counters are updated when setting and clearing immutable links, which can happen at most once per link in the lifetime of an object. The algorithm is implemented and used in the Facebook Folly open-source C++ library [1].
CITATION STYLE
Michael, M. M. (2020). Brief Announcement: Hazard Pointer Protection of Structures with Immutable Links. In Proceedings of the Annual ACM Symposium on Principles of Distributed Computing (pp. 230–232). Association for Computing Machinery. https://doi.org/10.1145/3382734.3405738
Mendeley helps you to discover research relevant for your work.