Hazard pointer

to get instant updates about 'Hazard Pointer' on your MyPage. Meet other similar minded people. Its Free!


All Updates

In a multithreaded computing environment, a hazard pointer is an element used by a method that allows the memory allocated to the nodes of lock-free dynamic shared objects to be reclaimed.

The typical problem with modifying dynamically allocated nodes is the ABA problem: other threads may modify nodes while you are working on them. In this solution, each thread keeps a list of hazard pointers indicating which nodes the thread is currently accessing. This list can only be written to by the owning thread but can be read by any thread. When a thread wishes to remove a node, it places it on a private list and periodically scans the lists of all other threads for pointers referencing that node. If no such pointers are found the memory occupied by the node can be safely freed.

Hazard pointer basically is a mechanism for a thread to declare to other threads it has to 'look-out' for them. Dr. Michael analyzed a large number of lock-free data structures and found all requires one or two hazard pointers per thread only.


  • (C++ oriented article).

External links

  • - C++ implementation of Hazard Pointer and lock-free data structures
  • - C++ implementation of Hazard Pointer (called "SMR") and other lock-free data structures. Also has Java interfaces.
  • - C implementation of Hazard Pointer and lock-free data structures
  • - C/C++ library that has a Hazard Pointer implementation
  • - Contains C++ implementation for Windows in appendices

Read More

No feeds found

Posting your question. Please wait!...

No updates available.
No messages found
Tell your friends >
about this page
 Create a new Page
for companies, colleges, celebrities or anything you like.Get updates on MyPage.
Create a new Page
 Find your friends
  Find friends on MyPage from