View source code
Display the source code in std/experimental/allocator/building_blocks/free_list.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Module std.experimental.allocator.building_blocks.free_list

Structs

NameDescription
ContiguousFreeList Free list built on top of exactly one contiguous block of memory. The block is assumed to have been allocated with ParentAllocator, and is released in ContiguousFreeList's destructor (unless ParentAllocator is NullAllocator).
FreeList Free list allocator, stackable on top of another allocator. Allocation requests between min and max bytes are rounded up to max and served from a singly-linked list of buffers deallocated in the past. All other allocations are directed to ParentAllocator. Due to the simplicity of free list management, allocations from the free list are fast. If adaptive is set to Yes.adaptive, the free list gradually reduces its size if allocations tend to use the parent allocator much more than the lists' available nodes.
SharedFreeList FreeList shared across threads. Allocation and deallocation are lock-free. The parameters have the same semantics as for FreeList.

Authors

License