summaryrefslogtreecommitdiff
path: root/lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java
diff options
context:
space:
mode:
Diffstat (limited to 'lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java')
-rw-r--r--lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java b/lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java
index 3708e1b..58aa5c1 100644
--- a/lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java
+++ b/lang/src/main/java/net/openhft/lang/io/AbstractMappedStore.java
@@ -28,7 +28,7 @@ import java.util.logging.Logger;
import net.openhft.lang.io.serialization.ObjectSerializer;
import net.openhft.lang.model.constraints.NotNull;
-import sun.misc.Cleaner;
+import java.lang.ref.Cleaner;
import sun.nio.ch.FileChannelImpl;
abstract class AbstractMappedStore implements BytesStore, Closeable {
@@ -39,7 +39,8 @@ abstract class AbstractMappedStore implements BytesStore, Closeable {
// retain to prevent GC.
private final File file;
private final RandomAccessFile raf;
- private final Cleaner cleaner;
+ private final static Cleaner cleaner = Cleaner.create();
+ private Cleaner.Cleanable cleanable;
private final AtomicInteger refCount = new AtomicInteger(1);
private final FileChannel.MapMode mode;
protected final MmapInfoHolder mmapInfoHolder;
@@ -59,7 +60,7 @@ abstract class AbstractMappedStore implements BytesStore, Closeable {
this.raf = new RandomAccessFile(file, accesModeFor(mode));
resizeIfNeeded(startInFile, size);
map(startInFile);
- this.cleaner = Cleaner.create(this, new Unmapper(mmapInfoHolder, raf));
+ this.cleanable = cleaner.register(this, new Unmapper(mmapInfoHolder, raf));
} catch (Exception e) {
throw wrap(e);
}
@@ -173,7 +174,7 @@ abstract class AbstractMappedStore implements BytesStore, Closeable {
@Override
public final void free() {
- cleaner.clean();
+ cleanable.clean();
}
@Override