summaryrefslogtreecommitdiff
path: root/test/2042-reference-processing/src/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/2042-reference-processing/src/Main.java')
-rw-r--r--test/2042-reference-processing/src/Main.java25
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;
}