View source code
Display the source code in std/experimental/allocator/mallocator.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.
Struct std.experimental.allocator.mallocator.AlignedMallocator
Aligned allocator using OS-specific primitives, under a uniform API.
struct AlignedMallocator
;
Fields
Name | Type | Description |
---|---|---|
instance
|
shared(AlignedMallocator) | Returns the global instance of this allocator type. The C heap allocator is
thread-safe, therefore all of its methods and instance itself are
shared .
|
Methods
Name | Description |
---|---|
alignedAllocate
|
Uses posix_memalign on Posix and
__aligned_malloc on Windows.
|
alignedReallocate
|
On Posix there is no realloc for aligned memory, so alignedReallocate emulates
the needed behavior by using alignedAllocate to get a new block. The existing
block is copied to the new block and then freed.
On Windows, calls _aligned_realloc(b ).
|
allocate
|
Forwards to alignedAllocate(bytes, platformAlignment) .
|
deallocate
|
Calls free(b on Posix and
__aligned_free(b on Windows.
|
reallocate
|
Forwards to alignedReallocate(b, newSize, platformAlignment) .
Should be used with blocks obtained with allocate otherwise the custom
alignment passed with alignedAllocate can be lost.
|
Example
auto buffer = AlignedMallocator .instance .alignedAllocate(1024 * 1024 * 4,
128);
scope(exit) AlignedMallocator .instance .deallocate(buffer);
//...
Authors
License
Copyright © 1999-2022 by the D Language Foundation | Page generated by ddox.