|
48 | 48 | import java.util.Arrays;
|
49 | 49 | import java.util.HashMap;
|
50 | 50 | import java.util.HashSet;
|
51 |
| -import java.util.LinkedList; |
52 | 51 | import java.util.Set;
|
53 | 52 | import java.util.WeakHashMap;
|
54 | 53 | import java.util.concurrent.ConcurrentHashMap;
|
@@ -205,20 +204,10 @@ private static HandleContext getContext() {
|
205 | 204 |
|
206 | 205 | public abstract static class IdReference<T> extends WeakReference<T> {
|
207 | 206 |
|
208 |
| - private boolean collected = false; |
209 |
| - |
210 | 207 | public IdReference(HandleContext handleContext, T referent) {
|
211 | 208 | super(referent, handleContext.referenceQueue);
|
212 | 209 | }
|
213 | 210 |
|
214 |
| - public boolean isCollected() { |
215 |
| - return collected; |
216 |
| - } |
217 |
| - |
218 |
| - public IdReference<T> setCollected() { |
219 |
| - this.collected = true; |
220 |
| - return this; |
221 |
| - } |
222 | 211 | }
|
223 | 212 |
|
224 | 213 | /**
|
@@ -448,23 +437,8 @@ public static int pollReferenceQueue() {
|
448 | 437 | }
|
449 | 438 | }
|
450 | 439 | try {
|
451 |
| - LinkedList<IdReference<?>> manualCleanupQueue = new LinkedList<>(); |
452 |
| - for (IdReference<?> ref : handleContext.nativeLookup.values()) { |
453 |
| - if (ref != null && ref.refersTo(null)) { |
454 |
| - manualCleanupQueue.add(ref); |
455 |
| - } |
456 |
| - } |
457 |
| - manuallyCollected = manualCleanupQueue.size(); |
458 | 440 | while (true) {
|
459 |
| - Object entry; |
460 |
| - if (!manualCleanupQueue.isEmpty()) { |
461 |
| - entry = manualCleanupQueue.pop().setCollected(); |
462 |
| - } else { |
463 |
| - entry = queue.poll(); |
464 |
| - if (entry instanceof IdReference<?> ref && ref.isCollected()) { |
465 |
| - continue; |
466 |
| - } |
467 |
| - } |
| 441 | + Object entry = queue.poll(); |
468 | 442 | if (entry == null) {
|
469 | 443 | if (count > 0) {
|
470 | 444 | assert handleContext.referenceQueuePollActive;
|
|
0 commit comments