Hazard Pointers

In a lock-free data structure, what problem do hazard pointers solve?

A

They eliminate the need for atomic operations by using thread-local storage instead

B

They prevent deadlock by imposing a global ordering on pointer acquisitions

C

They allow safe memory reclamation by letting threads announce which nodes they are currently accessing, so no thread frees a node another thread is still reading

D

They replace CAS operations with a more efficient hardware primitive