Applying Hazard Pointers to More Concurrent Data Structures | Synapse