while (it.hasNext()) { Map.Entry e = (Map.Entry)it.next(); int j = randomLevel(); if (j > h.level) j = h.level + 1; Object k = e.getKey();
while (it.hasNext()) { Map.Entry e = (Map.Entry)it.next(); int j = randomLevel(); if (j > h.level) j = h.level + 1; Object k = e.getKey();
while (it.hasNext()) { Map.Entry e = (Map.Entry)it.next(); int j = randomLevel(); if (j > h.level) j = h.level + 1; Object k = e.getKey();
Object key = k; Object val = v; int j = randomLevel(); if (j > h.level) j = h.level + 1; Node z = new Node(key, val, null);
Object key = k; Object val = v; int j = randomLevel(); if (j > h.level) j = h.level + 1; Node z = new Node(key, val, null);
Object key = k; Object val = v; int j = randomLevel(); if (j > h.level) j = h.level + 1; Node z = new Node(key, val, null);
if (!b.casNext(n, z)) break; // restart if lost race to append to b int level = randomLevel(); if (level > 0) insertIndex(z, level);
if (!b.casNext(n, z)) break; // restart if lost race to append to b int level = randomLevel(); if (level > 0) insertIndex(z, level);
if (!b.casNext(n, z)) break; // restart if lost race to append to b int level = randomLevel(); if (level > 0) insertIndex(z, level);