Hazard pointers needed with GC ?
    Martin Nowak 
    dawg at dawgfoto.de
       
    Wed Dec  7 09:02:06 PST 2011
    
    
  
I implemented a lock-free doubly linked list some time ago.
I omitted the use of hazard lists because flagging the lowest
bit would still make a valid pointer into the list node.
Afterwards I found that http://www.d-programming-language.org/garbage.html  
explicitly states:
   p = cast(void*)(cast(int)p | 1);  // error: undefined behavior
Is this really needed? Guess the current GC would work properly.
Also if a list node were
   Node(T)
   {
     ubyte[2] data;
     T           t;
   }
Than both a pointer to data[0] as well as one to data[1] are valid
and effectively hold the node.
martin
    
    
More information about the Digitalmars-d
mailing list