ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/extra166y/CustomConcurrentHashMap.java
(Generate patch)

Comparing jsr166/src/extra166y/CustomConcurrentHashMap.java (file contents):
Revision 1.4 by jsr166, Wed Aug 12 04:02:45 2009 UTC vs.
Revision 1.6 by dl, Sun Nov 1 22:14:39 2009 UTC

# Line 956 | Line 956 | public class CustomConcurrentHashMap<K,
956                      while (p != null) {
957                          Node n = p.getLinkage();
958                          if (p.get() != null && p.getValue() != null) {
959 +                            pred = p;
960 +                            p = n;
961 +                        }
962 +                        else {
963                              if (pred == null)
964                                  tab[i] = n;
965                              else
# Line 963 | Line 967 | public class CustomConcurrentHashMap<K,
967                              seg.decrementCount();
968                              p = n;
969                          }
966                        else {
967                            pred = p;
968                            p = n;
969                        }
970                      }
971                  }
972              } finally {
# Line 3031 | Line 3031 | public class CustomConcurrentHashMap<K,
3031      // Fenced store into segment table array. Unneeded when we have Fences
3032      static final  void storeNode(Node[] table,
3033                                   int i, Node r) {
3034 <        _unsafe.putOrderedObject(table, (i << tableShift) + tableBase, r);
3034 >        long nodeOffset = ((long) i << tableShift) + tableBase;
3035 >        _unsafe.putOrderedObject(table, nodeOffset, r);
3036      }
3037  
3038      static final  void storeSegment(Segment[] segs,
3039                                      int i, Segment s) {
3040 <        _unsafe.putOrderedObject(segs, (i << segmentsShift) + segmentsBase, s);
3040 >        long segmentOffset = ((long) i << segmentsShift) + segmentsBase;
3041 >        _unsafe.putOrderedObject(segs, segmentOffset, s);
3042      }
3043  
3044  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines