mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
Clean serializers and ThreadLocal fields of VanillaChronicleMap on close()
This commit is contained in:
@@ -657,15 +657,20 @@ public abstract class VanillaChronicleHash<K,
|
||||
@Override
|
||||
public final void close() {
|
||||
if (resources.releaseManually()) {
|
||||
// Don't try to execute cleaner.clean() and ChronicleHashCloseOnExitHook.remove() from
|
||||
// finally section of try block wrapping resources.releaseManually(), because
|
||||
// Releases nothing after resources.releaseManually(), only removes the cleaner
|
||||
// from the internal linked list of all cleaners.
|
||||
cleaner.clean();
|
||||
ChronicleHashCloseOnExitHook.remove(this);
|
||||
cleanupOnClose();
|
||||
}
|
||||
}
|
||||
|
||||
protected void cleanupOnClose() {
|
||||
// Releases nothing after resources.releaseManually(), only removes the cleaner
|
||||
// from the internal linked list of all cleaners.
|
||||
cleaner.clean();
|
||||
ChronicleHashCloseOnExitHook.remove(this);
|
||||
// Make GC life easier
|
||||
keyReader = null;
|
||||
keyDataAccess = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpen() {
|
||||
return !resources.closed();
|
||||
|
||||
Reference in New Issue
Block a user