提交 ad54d77c 编写于 作者: V Vlad Ilyushchenko

fixing direct memory deallocation

上级 7328cd25
......@@ -17,35 +17,29 @@
package com.nfsdb.collections;
import com.nfsdb.utils.Unsafe;
import sun.misc.Cleaner;
import java.io.Closeable;
public class DirectMemory implements Closeable {
private final Cleaner cleaner = Cleaner.create(this, new Runnable() {
@Override
public void run() {
free0();
}
});
protected long address;
private void free0() {
if (address != 0) {
Unsafe.getUnsafe().freeMemory(address);
address = 0;
protected void freeInternal() {
freeInternal();
}
}
protected void freeInternal() {
@Override
protected void finalize() throws Throwable {
free();
super.finalize();
}
public void free() {
cleaner.clean();
if (address != 0) {
Unsafe.getUnsafe().freeMemory(address);
address = 0;
freeInternal();
}
}
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册