diff options
Diffstat (limited to 'test/2042-reference-processing/src/Main.java')
-rw-r--r-- | test/2042-reference-processing/src/Main.java | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/test/2042-reference-processing/src/Main.java b/test/2042-reference-processing/src/Main.java index ed670523ea..c7f547fe15 100644 --- a/test/2042-reference-processing/src/Main.java +++ b/test/2042-reference-processing/src/Main.java @@ -21,7 +21,7 @@ import java.lang.ref.WeakReference; import java.math.BigInteger; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.atomic.AtomicInteger; -import java.util.HashMap; +import java.util.concurrent.ConcurrentHashMap; import java.util.TreeMap; /** @@ -48,7 +48,6 @@ public class Main { static volatile boolean pleaseStop; AtomicInteger totalFinalized = new AtomicInteger(0); - Object phantomRefsLock = new Object(); int maxDropped = 0; int liveObjects = 0; @@ -66,7 +65,7 @@ public class Main { // Maps from object number to Reference; Cleared references are deleted when queues are // processed. TreeMap<Integer, MyWeakReference> weakRefs = new TreeMap<>(); - HashMap<Integer, MyPhantomReference> phantomRefs = new HashMap<>(); + ConcurrentHashMap<Integer, MyPhantomReference> phantomRefs = new ConcurrentHashMap<>(); class FinalizableObject { int n; @@ -101,16 +100,14 @@ public class Main { } } boolean inPhantomRefs(int n) { - synchronized(phantomRefsLock) { - MyPhantomReference ref = phantomRefs.get(n); - if (ref == null) { - return false; - } - if (ref.n != n) { - System.out.println("phantomRef retrieval failed"); - } - return true; + MyPhantomReference ref = phantomRefs.get(n); + if (ref == null) { + return false; } + if (ref.n != n) { + System.out.println("phantomRef retrieval failed"); + } + return true; } void CheckOKToClearWeak(int num) { @@ -197,9 +194,7 @@ public class Main { int me = nextAllocated++; listHead = new FinalizableObject(me, listHead); weakRefs.put(me, new MyWeakReference(listHead)); - synchronized(phantomRefsLock) { - phantomRefs.put(me, new MyPhantomReference(listHead)); - } + phantomRefs.put(me, new MyPhantomReference(listHead)); } liveObjects += n; } |