diff options
author | Jose <jose@zeroc.com> | 2012-01-04 18:33:47 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2012-01-04 18:33:47 +0100 |
commit | 12f57cbc2a7e3924990e57302e0e9cc43f948f85 (patch) | |
tree | fed7b50005768d31c5f83f12dfd5f5565e4f1222 /java/src/Freeze/MapInternal/MapI.java | |
parent | ICE-3318 Java finalizers are problematic (diff) | |
download | ice-12f57cbc2a7e3924990e57302e0e9cc43f948f85.tar.bz2 ice-12f57cbc2a7e3924990e57302e0e9cc43f948f85.tar.xz ice-12f57cbc2a7e3924990e57302e0e9cc43f948f85.zip |
ICE-4471 Synchronization in Freeze MapI.java
Diffstat (limited to 'java/src/Freeze/MapInternal/MapI.java')
-rw-r--r-- | java/src/Freeze/MapInternal/MapI.java | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/java/src/Freeze/MapInternal/MapI.java b/java/src/Freeze/MapInternal/MapI.java index f09b91fba33..95880628678 100644 --- a/java/src/Freeze/MapInternal/MapI.java +++ b/java/src/Freeze/MapInternal/MapI.java @@ -1051,18 +1051,15 @@ public abstract class MapI<K, V> extends java.util.AbstractMap<K, V> { int count = 0; - synchronized(_iteratorList) - { - java.util.Iterator<IteratorI> p = _iteratorList.iterator(); + java.util.Iterator<IteratorI> p = _iteratorList.iterator(); - while(p.hasNext()) + while(p.hasNext()) + { + IteratorI i = p.next(); + if(i != except) { - IteratorI i = p.next(); - if(i != except) - { - i.close(); - ++count; - } + i.close(); + ++count; } } @@ -1072,13 +1069,10 @@ public abstract class MapI<K, V> extends java.util.AbstractMap<K, V> Object addIterator(IteratorI i) { - synchronized(_iteratorList) - { - _iteratorList.addFirst(i); - java.util.Iterator<IteratorI> p = _iteratorList.iterator(); - p.next(); - return p; - } + _iteratorList.addFirst(i); + java.util.Iterator<IteratorI> p = _iteratorList.iterator(); + p.next(); + return p; } void @@ -1087,10 +1081,7 @@ public abstract class MapI<K, V> extends java.util.AbstractMap<K, V> @SuppressWarnings("unchecked") java.util.Iterator<IteratorI> i = (java.util.Iterator<IteratorI>)token; - synchronized(_iteratorList) - { - i.remove(); - } + i.remove(); } // |