Author: jing9 Date: Wed Dec 18 21:30:37 2013 New Revision: 1552109 URL: http://svn.apache.org/r1552109 Log: HDFS-5496. Make replication queue initialization asynchronous. Contributed by Vinay.
Modified: hadoop/common/branches/HDFS-5535/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/LightWeightGSet.java Modified: hadoop/common/branches/HDFS-5535/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/LightWeightGSet.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-5535/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/LightWeightGSet.java?rev=1552109&r1=1552108&r2=1552109&view=diff ============================================================================== --- hadoop/common/branches/HDFS-5535/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/LightWeightGSet.java (original) +++ hadoop/common/branches/HDFS-5535/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/LightWeightGSet.java Wed Dec 18 21:30:37 2013 @@ -244,13 +244,14 @@ public class LightWeightGSet<K, E extend out.println("\n]"); } - private class SetIterator implements Iterator<E> { + public class SetIterator implements Iterator<E> { /** The starting modification for fail-fast. */ private int iterModification = modification; /** The current index of the entry array. */ private int index = -1; private LinkedElement cur = null; private LinkedElement next = nextNonemptyEntry(); + private boolean trackModification = true; /** Find the next nonempty entry starting at (index + 1). */ private LinkedElement nextNonemptyEntry() { @@ -259,7 +260,7 @@ public class LightWeightGSet<K, E extend } private void ensureNext() { - if (modification != iterModification) { + if (trackModification && modification != iterModification) { throw new ConcurrentModificationException("modification=" + modification + " != iterModification = " + iterModification); } @@ -304,6 +305,10 @@ public class LightWeightGSet<K, E extend iterModification++; cur = null; } + + public void setTrackModification(boolean trackModification) { + this.trackModification = trackModification; + } } /**