Die Double-Linked-List-API im Linux-Kernel ist als Abstraktion der Ringliste implementiert. In diesem einfachen Schema enthält der HEAD-Knoten nicht irgendwelche Nutzdaten (Daten) und wird explizit verwendet, um den Startpunkt der Liste beizubehalten. Aufgrund eines solchen Designs ist es sehr einfach a) zu überprüfen, ob die Liste leer ist, und b) zu debuggen, da unbenutzte Knoten der so genannten POISON - magischen Zahl zugewiesen wurden, die nur für die Listenzeiger in der gesamte Kernel.
1) nicht initialisierte Liste
%Vor%2) leere Liste
%Vor%3) Liste mit einem Element
%Vor%4) zwei Elemente in der Liste
%Vor% Im Lockless-Algorithmus gibt es nur eine Garantie für next -Zeiger, um konsistent zu sein. Die Garantie war nicht immer gegeben. Das commit 41071d65e11b
führt es ein.
Tags und Links c linux-kernel linked-list