![]() |
Lumiera 0.pre.04
»edit your freedom«
|
Memory management for the low-level model (render nodes network). More...
Go to the source code of this file.
Memory management for the low-level model (render nodes network).
The model is organised into temporal segments, which are considered to be structurally constant and uniform. The objects within each segment are strongly interconnected, and thus each segment is created within a single build process and is replaced or released as a whole. AllocationCluster implements memory management to support this usage pattern. Optionally it is even possible to skip invocation of object destructors, making de-allocation highly efficient (typically the memory pages are already cache-cold when about to discarded).
Definition in file allocation-cluster.hpp.
#include "lib/error.hpp"#include "lib/nocopy.hpp"#include <type_traits>#include <utility>#include <memory>Namespaces | |
| namespace | lib |
| Implementation namespace for support and library code. | |
| namespace | lib::test |
| Unit tests for the Lumiera support library. | |
| namespace | lib::allo |
Classes | |
| class | AllocationCluster |
| A pile of objects sharing common allocation and lifecycle. More... | |
| struct | AllocationCluster::Storage |
| maintaining the Allocation More... | |
| struct | AllocationCluster::Allocator< X > |
| class | AllocationCluster::Destructor |
| struct | AllocationCluster::AllocationWithDestructor< X > |
| struct | SetupSeveral< std::void_t, lib::AllocationCluster & > |
| Specialisation to use lib::Several with storage managed by an AllocationCluster instance, which must be provided as argument. More... | |
| struct | SetupSeveral< std::void_t, lib::AllocationCluster & >::Policy |