void helpDelete ( Node < K , V > b , Node < K , V > f ) { /* * Rechecking links and then doing only one of the * help-out stages per call tends to minimize CAS * interference among helping threads. */ if ( f == next && this == b . next ) { if ( f == null || f . value != f ) // not already marked appendMarker ( f ) ; else b . casNext ( this , f . next ) ; } }
Helps out a deletion by appending marker or unlinking from predecessor . This is called during traversals when value field seen to be null .