The startable.unmap
property controls how memory-mapped
buffers (MappedByteBuffer
s)
that have been allocated by STIL are unmapped when it can
be determined that they will no longer be used.
Specifically, it controls the implementation of the
Unmapper
class that will be used.
See the implementation and comments in that class for further discussion.
This is currently only used for FITS input, but it may be extended for
other purposes in future versions.
Possible values are:
sun
: Best efforts unmapping based on available
sun.misc
classes, discovered by reflection.
cleaner
: Buffers are unmapped using non-J2SE classes including
sun.misc.Cleaner
, discovered by reflection.
Expected to work for java6 through java8.
unsafe
: Buffers are unmapped using non-J2SE classes including
sun.misc.Unsafe
, discovered by reflection.
Expected to work for java9 and possibly later versions.
none
: No attempt is made to unmap buffers explicitly.
They will be unmapped only when garbage collected.
Unmapper
implementation
that has a no-arg constructor.
If no value is supplied, sun
-like behaviour
is used where possible,
but it falls back to none
if the relevant classes are
not available.
In general you are advised to leave this parameter alone.
It is provided because the sun-like unmapping is doing fundamentally
inadvisable things, and although I think it's done in a way which will
not cause problems, nasty consequences like JVM crashes are possible
if I've made mistakes, so it's a good idea to have a switch here that
allows the dangerous behaviour to be switched off
(startable.unmap=none
).