SharedFreeList
имеет правильный метод, но я не вижу, как освободить все узлы в FreeList
:Как я могу освободить все элементы FreeList?
module runnable;
import std.experimental.allocator.building_blocks;
import std.experimental.allocator.mallocator;
import std.experimental.allocator;
shared SharedFreeList!(Mallocator, 0, unbounded) heap1;
FreeList!(Mallocator, 0, unbounded) heap2;
shared static ~this()
{
heap1.deallocateAll; // OK
}
static ~this()
{
heap2.deallocateAll; // no prop deallocateAll for...
}
Хотя этот пример не имеет смысла, я могу хотеть сделать то же самое в классе деструктор. С определенными статическими параметрами FreeList.deallocateAll
, кажется, деактивирован, однако должен быть способ освободить все узлы в списке, правильно?
это прозрачный, согласен. –
Я не смотрел на реализацию 'FreeList', но он мог отслеживать только свободные объекты, а не любые объекты, которые были выделены. В этом случае было бы невозможно реализовать 'deallocateAll'. –