Version: Unity 6.7 Beta (6000.7)
LanguageEnglish
  • C#

RewindableAllocator

struct in Unity.Collections


Implements interfaces:IAllocator

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

An allocator that is fast like a linear allocator, is threadsafe, and automatically invalidates all allocations made from it, when "rewound" by the user.

Properties

Property Description
BlocksAllocated Retrieves the number of memory blocks that the allocator has requested from the system.
EnableBlockFree Property to get and set enable block free flag, a flag indicating whether the allocator should enable individual block to be freed.
Function All allocators must implement this property, in order to be installed in the custom allocator table.
Handle Retrieve the AllocatorHandle associated with this allocator. The handle is used as an index into a global table, for times when a reference to the allocator object isn't available.
InitialSizeInBytes Retrieves the size of the initial memory block, as requested in the Initialize function.
IsAutoDispose Check whether this allocator will automatically dispose allocations.
IsCustomAllocator Check whether this AllocatorHandle is a custom allocator.
ToAllocator Retrieve the Allocator associated with this allocator.

Public Methods

Method Description
AllocateNativeArray Allocate a NativeArray of type T from memory that is guaranteed to remain valid until the end of the next Update of this World. There is no need to Dispose the NativeArray so allocated. It is not possible to free the memory by Disposing it - it is automatically freed after the end of the next Update for this World.
AllocateNativeList Allocate a NativeList of type T from memory that is guaranteed to remain valid until the end of the next Update of this World. There is no need to Dispose the NativeList so allocated. It is not possible to free the memory by Disposing it - it is automatically freed after the end of the next Update for this World. The NativeList must be initialized with its maximum capacity; if it were to dynamically resize, up to 1/2 of the total final capacity would be wasted, because the memory can't be dynamically freed.
Dispose Dispose the allocator. This must be called to free the memory blocks that were allocated from the system.
Initialize Initializes the allocator. Must be called before first use.
Rewind Rewind the allocator; invalidate all allocations made from it, and potentially also free memory blocks it has allocated from the system.
Try Try to allocate, free, or reallocate a block of memory. This is an internal function, and is not generally called by the user.