Skip to content
This repository was archived by the owner on May 9, 2024. It is now read-only.

Commit fd6cb55

Browse files
committed
SoftReference -> WeakReference
1 parent b154e86 commit fd6cb55

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

unsafe/src/main/java/org/apache/spark/unsafe/memory/ExecutorMemoryManager.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package org.apache.spark.unsafe.memory;
1919

20-
import java.lang.ref.SoftReference;
20+
import java.lang.ref.WeakReference;
2121
import java.util.HashMap;
2222
import java.util.LinkedList;
2323
import java.util.Map;
@@ -40,8 +40,8 @@ public class ExecutorMemoryManager {
4040
final boolean inHeap;
4141

4242
@GuardedBy("this")
43-
private final Map<Long, LinkedList<SoftReference<MemoryBlock>>> bufferPoolsBySize =
44-
new HashMap<Long, LinkedList<SoftReference<MemoryBlock>>>();
43+
private final Map<Long, LinkedList<WeakReference<MemoryBlock>>> bufferPoolsBySize =
44+
new HashMap<Long, LinkedList<WeakReference<MemoryBlock>>>();
4545

4646
private static final int POOLING_THRESHOLD_BYTES = 1024 * 1024;
4747

@@ -73,10 +73,10 @@ private boolean shouldPool(long size) {
7373
MemoryBlock allocate(long size) throws OutOfMemoryError {
7474
if (shouldPool(size)) {
7575
synchronized (this) {
76-
final LinkedList<SoftReference<MemoryBlock>> pool = bufferPoolsBySize.get(size);
76+
final LinkedList<WeakReference<MemoryBlock>> pool = bufferPoolsBySize.get(size);
7777
if (pool != null) {
7878
while (!pool.isEmpty()) {
79-
final SoftReference<MemoryBlock> blockReference = pool.pop();
79+
final WeakReference<MemoryBlock> blockReference = pool.pop();
8080
final MemoryBlock memory = blockReference.get();
8181
if (memory != null) {
8282
assert (memory.size() == size);
@@ -96,12 +96,12 @@ void free(MemoryBlock memory) {
9696
final long size = memory.size();
9797
if (shouldPool(size)) {
9898
synchronized (this) {
99-
LinkedList<SoftReference<MemoryBlock>> pool = bufferPoolsBySize.get(size);
99+
LinkedList<WeakReference<MemoryBlock>> pool = bufferPoolsBySize.get(size);
100100
if (pool == null) {
101-
pool = new LinkedList<SoftReference<MemoryBlock>>();
101+
pool = new LinkedList<WeakReference<MemoryBlock>>();
102102
bufferPoolsBySize.put(size, pool);
103103
}
104-
pool.add(new SoftReference<MemoryBlock>(memory));
104+
pool.add(new WeakReference<MemoryBlock>(memory));
105105
}
106106
} else {
107107
allocator.free(memory);

0 commit comments

Comments
 (0)