SharedFreeList
hat die richtige Methode, aber ich sehe nicht, wie alle Knoten eines FreeList
zu befreien:Wie kann ich alle Artikel einer FreeList freigeben?
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...
}
Während dieses Beispiel keinen Sinn, ich kann das gleiche in einer Klassendestruktor tun wollen. Mit bestimmten statischen Parametern scheint FreeList.deallocateAll
deaktiviert zu sein, jedoch muss es eine Möglichkeit geben, alle Knoten in der Liste zu entfernen, richtig?
das klar, stimme ich zu. –
Ich habe nicht auf die Implementierung von 'FreeList' geschaut, aber es könnte nur die freien Objekte verfolgen und nicht die Objekte, die zugewiesen wurden. In diesem Fall wäre es nicht möglich, 'deallocateAll' zu implementieren. –