Skip to content

Commit 426e903

Browse files
committed
force gc
1 parent d62851a commit 426e903

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/main/java/io/github/nettyplus/leakdetector/junit/NettyLeakListener.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.github.nettyplus.leakdetector.junit;
22

33
import io.netty.util.ResourceLeakDetector.LeakListener;
4+
import java.lang.ref.WeakReference;
45
import java.util.List;
56
import java.util.concurrent.CopyOnWriteArrayList;
67

@@ -21,6 +22,7 @@ public void assertZeroLeaks() {
2122
}
2223

2324
public void assertZeroLeaks(String detail) {
25+
forceGc();
2426
if (!leaks.isEmpty()) {
2527
StringBuilder message = new StringBuilder("Netty leaks: ");
2628
if (detail != null) {
@@ -32,6 +34,18 @@ public void assertZeroLeaks(String detail) {
3234
}
3335
}
3436

37+
private static void forceGc() {
38+
WeakReference<Object> dummy = new WeakReference<>(new Object());
39+
while (dummy.get() != null) {
40+
System.gc();
41+
try {
42+
Thread.sleep(250);
43+
} catch (InterruptedException e) {
44+
// ignore
45+
}
46+
}
47+
}
48+
3549
public void reset() {
3650
this.leaks.clear();
3751
}

0 commit comments

Comments
 (0)