Class ExtentHooks

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class ExtentHooks
    extends Struct
    implements NativeResource
    The extent_hooks_t structure comprises function pointers which are described individually below. jemalloc uses these functions to manage extent lifetime, which starts off with allocation of mapped committed memory, in the simplest case followed by deallocation. However, there are performance and platform reasons to retain extents for later reuse. Cleanup attempts cascade from deallocation to decommit to forced purging to lazy purging, which gives the extent management functions opportunities to reject the most permanent cleanup operations in favor of less permanent (and often less costly) operations. All operations except allocation can be universally opted out of by setting the hook pointers to NULL, or selectively opted out of by returning failure.

    Member documentation

    • alloc – the extent allocation hook
    • dalloc – the extent deallocation hook
    • destroy – the extent destruction hook
    • commit – the extent commit hook
    • decommit – the extent decommit hook
    • purge_lazy – the extent lazy purge hook
    • purge_forced – the extent forced purge hook
    • split – the extent split hook
    • merge – the extent merge hook


     struct extent_hooks_t {
         extent_alloc_t alloc;
         extent_dalloc_t dalloc;
         extent_destroy_t destroy;
         extent_commit_t commit;
         extent_decommit_t decommit;
         extent_purge_t purge_lazy;
         extent_purge_t purge_forced;
         extent_split_t split;
         extent_merge_t merge;
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.

        The struct member offsets.
    • Constructor Detail

      • ExtentHooks

        public ExtentHooks​(java.nio.ByteBuffer container)
        Creates a ExtentHooks instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • alloc

        public ExtentAlloc alloc()
        Returns the value of the alloc field.
      • dalloc

        public ExtentDalloc dalloc()
        Returns the value of the dalloc field.
      • destroy

        public ExtentDestroy destroy()
        Returns the value of the destroy field.
      • commit

        public ExtentCommit commit()
        Returns the value of the commit field.
      • decommit

        public ExtentDecommit decommit()
        Returns the value of the decommit field.
      • purge_lazy

        public ExtentPurge purge_lazy()
        Returns the value of the purge_lazy field.
      • purge_forced

        public ExtentPurge purge_forced()
        Returns the value of the purge_forced field.
      • split

        public ExtentSplit split()
        Returns the value of the split field.
      • merge

        public ExtentMerge merge()
        Returns the value of the merge field.
      • purge_lazy

        public ExtentHooks purge_lazy​(@Nullable
                                      ExtentPurgeI value)
        Sets the specified value to the purge_lazy field.
      • purge_forced

        public ExtentHooks purge_forced​(@Nullable
                                        ExtentPurgeI value)
        Sets the specified value to the purge_forced field.
      • set

        public ExtentHooks set​(ExtentHooks src)
        Copies the specified struct data to this struct.
        src - the source struct
        this struct
      • create

        public static ExtentHooks create​(long address)
        Returns a new ExtentHooks instance for the specified memory address.
      • createSafe

        public static ExtentHooks createSafe​(long address)
        Like create, but returns null if address is NULL.
      • callocStack

        public static ExtentHooks callocStack()
        Returns a new ExtentHooks instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • callocStack

        public static ExtentHooks callocStack​(MemoryStack stack)
        Returns a new ExtentHooks instance allocated on the specified MemoryStack and initializes all its bits to zero.
        stack - the stack from which to allocate
      • ndalloc

        public static ExtentDalloc ndalloc​(long struct)
        Unsafe version of dalloc().
      • ncommit

        public static ExtentCommit ncommit​(long struct)
        Unsafe version of commit().
      • nsplit

        public static ExtentSplit nsplit​(long struct)
        Unsafe version of split().
      • nmerge

        public static ExtentMerge nmerge​(long struct)
        Unsafe version of merge().
      • nalloc

        public static void nalloc​(long struct,
                                  ExtentAllocI value)
        Unsafe version of alloc.
      • ndalloc

        public static void ndalloc​(long struct,
                                   ExtentDallocI value)
        Unsafe version of dalloc.
      • ndestroy

        public static void ndestroy​(long struct,
                                    ExtentDestroyI value)
        Unsafe version of destroy.
      • ncommit

        public static void ncommit​(long struct,
                                   ExtentCommitI value)
        Unsafe version of commit.
      • ndecommit

        public static void ndecommit​(long struct,
                                     ExtentDecommitI value)
        Unsafe version of decommit.
      • npurge_lazy

        public static void npurge_lazy​(long struct,
                                       ExtentPurgeI value)
        Unsafe version of purge_lazy.
      • npurge_forced

        public static void npurge_forced​(long struct,
                                         ExtentPurgeI value)
        Unsafe version of purge_forced.
      • nsplit

        public static void nsplit​(long struct,
                                  ExtentSplitI value)
        Unsafe version of split.
      • nmerge

        public static void nmerge​(long struct,
                                  ExtentMergeI value)
        Unsafe version of merge.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        array - the struct array to validate
        count - the number of structs in array